L'utilisation de Python et de Playwright pour extraire des données de Google Trends permet un examen détaillé de la popularité des mots clés et le suivi des changements de tendance au fil du temps. Cette approche fournit des informations cruciales pour l'analyse marketing.
Avant de plonger dans le code, assurez-vous que les outils suivants sont installés :
Vous pouvez installer Playwright à l'aide de pip :
pip install playwright
Pour utiliser Playwright avec du code asynchrone, vous aurez également besoin de la bibliothèque asyncio, qui est incluse par défaut dans Python 3.7+.
Nous allons utiliser Playwright, un puissant outil d'automatisation du navigateur, pour naviguer sur le site Web de Google Trends et télécharger des fichiers CSV contenant des données sur les tendances. Ce didacticiel vous guidera tout au long du processus.
Tout d'abord, assurez-vous que Playwright est installé :
playwright install
Si vous ne souhaitez pas installer tous les navigateurs, il vous suffit d'utiliser cette commande pour installer uniquement le navigateur Chrome.
playwright install chromium
L'utilisation de proxys est essentielle pour le scraping de plateformes telles que Google, qui luttent activement contre l'activité des robots. Les proxys permettent la rotation des adresses IP, ce qui contribue à réduire le risque d'être bloqué. Dans notre script, nous utilisons des proxys privés pour acheminer nos demandes.
proxy = {
"server": "IP:PORT",
"username": "your_username",
"password": "your_password"
}
Remplacez les variables IP, PORT, nom d'utilisateur et mot de passe par les données réelles de votre serveur proxy.
Dans cet exemple, nous naviguons d'abord sur google.com pour contourner tout blocage potentiel avant de nous rendre sur la page Google Trends. Cela permet d'imiter le comportement normal d'un utilisateur et d'éviter la détection.
Cette étape consiste à prendre des mesures préliminaires pour éviter d'être signalé et bloqué par Google :
import asyncio
from playwright.async_api import Playwright, async_playwright
async def run(playwright: Playwright) -> None:
# Lancement du navigateur avec les paramètres du proxy
browser = await playwright.chromium.launch(headless=False, proxy={
"server": "IP:PORT",
"username": "your_username",
"password": "your_password"
})
# Création d'un nouveau contexte de navigation
context = await browser.new_context()
# Ouverture d'une nouvelle page
page = await context.new_page()
# Visiter Google pour imiter la navigation normale
await page.goto("https://google.com")
Ensuite, accédez directement à la page de Google Trends où se trouvent les données requises. Google Trends propose des options pour télécharger les données directement au format CSV, ce qui facilite le processus d'extraction. Automatisez l'action consistant à cliquer sur le bouton "Télécharger" pour lancer le téléchargement des données. Cela permet d'extraire les données de tendances sans intervention manuelle. Une fois que le bouton "Télécharger" est visible, l'automate doit cliquer dessus pour lancer le téléchargement du fichier CSV qui contient les données de tendance nécessaires.
# Naviguer vers Google Trends
await page.goto("https://trends.google.com/trends/explore?q=%2Fg%2F11bc6c__s2&date=now%201-d&geo=US&hl=en-US")
# Attendre le bouton de téléchargement et cliquer dessus
async with page.expect_download() as download_info:
await page.get_by_role("button", name="file_download").first.click()
# Gestion du téléchargement
download = await download_info.value
print(download.suggested_filename)
Le fichier CSV téléchargé est automatiquement enregistré dans un répertoire spécifié sur votre appareil local.
# Enregistrement du fichier téléchargé
await download.save_as("/path/to/save/" + download.suggested_filename)
Voici le code complet pour télécharger les données Google Trends sous forme de fichier CSV à l'aide de Playwright :
import asyncio
import os
import re
from playwright.async_api import Playwright, async_playwright
async def run(playwright: Playwright) -> None:
# Lancer le navigateur avec les paramètres du proxy
browser = await playwright.chromium.launch(headless=False, proxy={
"server": "IP:PORT",
"username": "your_username",
"password": "your_password"
})
# Créer un nouveau contexte de navigation
context = await browser.new_context()
# Ouvrir une nouvelle page
page = await context.new_page()
# Visitez Google pour éviter la détection
await page.goto("https://google.com")
# Naviguer vers Google Trends
await page.goto("https://trends.google.com/trends/explore?q=%2Fg%2F11bc6c__s2&date=now%201-d&geo=US&hl=en-US")
# Cliquez sur le bouton de téléchargement
async with page.expect_download() as download_info:
await page.get_by_role("button", name=re.compile(r"file_download")).first.click()
# Enregistrer le fichier téléchargé
download = await download_info.value
destination_path = os.path.join("path/to/save", download.suggested_filename)
await download.save_as(destination_path)
# Fermer le contexte et le navigateur
await context.close()
await browser.close()
async def main() -> None:
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
En suivant ce guide, vous pourrez télécharger efficacement des données sur les tendances, gérer la rotation des serveurs mandataires et contourner les mécanismes de protection contre les robots. Pour éviter efficacement le blocage, il est essentiel d'utiliser des serveurs proxy fiables. Les proxys résidentiels, qui offrent des adresses IP dynamiques et ne nécessitent pas de configuration de rotation, sont fortement recommandés. Les serveurs mandataires statiques des FAI sont également efficaces ; achetez le nombre d'adresses IP requis et mettez en place une rotation régulière des adresses IP dans votre script. L'un ou l'autre choix garantit un risque minimal de blocage et de captcha, facilitant ainsi un scraping de données plus rapide et plus fluide.
Мы получили вашу заявку!
Ответ будет отправлен на почту в ближайшее время.
С уважением proxy-seller.ru!
Commentaires: 0