L'uso di Python e Playwright per raschiare i dati da Google Trends consente di esaminare in dettaglio la popolarità delle parole chiave e di monitorare le variazioni di tendenza nel tempo. Questo approccio fornisce informazioni cruciali per l'analisi del marketing.
Prima di immergervi nel codice, assicuratevi di avere installato i seguenti strumenti:
È possibile installare Playwright utilizzando pip:
pip install playwright
Per utilizzare Playwright con codice asincrono, è necessaria anche la libreria asyncio, che è inclusa in Python 3.7+ per impostazione predefinita.
Utilizzeremo Playwright, un potente strumento di automazione del browser, per navigare nel sito web di Google Trends e scaricare file CSV contenenti dati sulle tendenze. Questo tutorial vi guiderà attraverso l'intero processo.
Innanzitutto, assicurarsi che Playwright sia installato:
playwright install
Se non si desidera installare tutti i browser, è sufficiente utilizzare questo comando per installare solo il browser chromium.
playwright install chromium
Per lo scraping di piattaforme come Google, che contrastano attivamente l'attività dei bot, l'uso dei proxy è essenziale. I proxy consentono la rotazione degli IP, contribuendo a ridurre il rischio di essere bloccati. Nel nostro script, utilizziamo dei proxy privati per instradare le nostre richieste.
proxy = {
"server": "IP:PORT",
"username": "your_username",
"password": "your_password"
}
Sostituire le variabili IP, PORT, username e password con i dati reali del server proxy.
In questo esempio, per prima cosa navighiamo su google.com per aggirare eventuali blocchi prima di andare alla pagina di Google Trends. Questo per imitare il normale comportamento dell'utente ed evitare il rilevamento.
Questa fase prevede azioni preliminari per evitare di essere segnalati e bloccati da Google:
import asyncio
from playwright.async_api import Playwright, async_playwright
async def run(playwright: Playwright) -> None:
# Avvio del browser con impostazioni proxy
browser = await playwright.chromium.launch(headless=False, proxy={
"server": "IP:PORT",
"username": "your_username",
"password": "your_password"
})
# Creare un nuovo contesto del browser
context = await browser.new_context()
# Apertura di una nuova pagina
page = await context.new_page()
# Visitare Google per simulare la normale navigazione
await page.goto("https://google.com")
Successivamente, si naviga direttamente alla pagina di Google Trends dove si trovano i dati richiesti. Google Trends offre la possibilità di scaricare i dati direttamente in formato CSV, facilitando così il processo di estrazione. Automatizzare l'azione di fare clic sul pulsante "Download" per avviare il download dei dati. Ciò consente di estrarre i dati di tendenza senza intervento manuale. Una volta che il pulsante "Download" diventa visibile, l'automazione deve fare clic su di esso, avviando il download del file CSV che contiene i dati di trend necessari.
# Navigazione in Google Trends
await page.goto("https://trends.google.com/trends/explore?q=%2Fg%2F11bc6c__s2&date=now%201-d&geo=US&hl=en-US")
# Attendere il pulsante di download e fare clic su di esso
async with page.expect_download() as download_info:
await page.get_by_role("button", name="file_download").first.click()
# Gestione del download
download = await download_info.value
print(download.suggested_filename)
Il file CSV scaricato viene automaticamente salvato in una directory specificata sul dispositivo locale.
# Salvare il file scaricato
await download.save_as("/path/to/save/" + download.suggested_filename)
Ecco il codice completo per scaricare i dati di Google Trends come file CSV utilizzando Playwright:
import asyncio
import os
import re
from playwright.async_api import Playwright, async_playwright
async def run(playwright: Playwright) -> None:
# Avviare il browser con le impostazioni del proxy
browser = await playwright.chromium.launch(headless=False, proxy={
"server": "IP:PORT",
"username": "your_username",
"password": "your_password"
})
# Creare un nuovo contesto del browser
context = await browser.new_context()
# Aprire una nuova pagina
page = await context.new_page()
# Visitare Google per evitare il rilevamento
await page.goto("https://google.com")
# Andare su Google Trends
await page.goto("https://trends.google.com/trends/explore?q=%2Fg%2F11bc6c__s2&date=now%201-d&geo=US&hl=en-US")
# Fare clic sul pulsante di download
async with page.expect_download() as download_info:
await page.get_by_role("button", name=re.compile(r"file_download")).first.click()
# Salvare il file scaricato
download = await download_info.value
destination_path = os.path.join("path/to/save", download.suggested_filename)
await download.save_as(destination_path)
# Chiudere il contesto e il browser
await context.close()
await browser.close()
async def main() -> None:
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
Seguendo questa guida, è possibile scaricare in modo efficiente i dati di tendenza, gestire la rotazione dei proxy e aggirare i meccanismi di protezione dei bot. Per evitare efficacemente i blocchi, è fondamentale utilizzare server proxy affidabili. I proxy residenziali, che offrono indirizzi IP dinamici e non necessitano di configurazione a rotazione, sono altamente raccomandati. In alternativa, sono efficaci anche i proxy statici dell'ISP; acquistate il numero di IP necessario e impostate una rotazione regolare degli IP nel vostro script. Entrambe le scelte assicurano un rischio minimo di blocco e di captcha, facilitando uno scraping dei dati più rapido e fluido.
Мы получили вашу заявку!
Ответ будет отправлен на почту в ближайшее время.
С уважением proxy-seller.com!
Commenti: 0