A utilização de Python e Playwright para extrair dados do Google Trends permite um exame detalhado da popularidade das palavras-chave e a monitorização das mudanças de tendências ao longo do tempo. Esta abordagem fornece informações cruciais para a análise de marketing.
Antes de mergulhar no código, verifique se você tem as seguintes ferramentas instaladas:
Você pode instalar o Playwright usando pip:
pip install playwright
Para utilizar o Playwright com código assíncrono, também vai precisar da biblioteca asyncio, que está incluída no Python 3.7+ por defeito.
Vamos utilizar o Playwright, uma poderosa ferramenta de automatização do browser, para navegar no Web site do Google Trends e transferir ficheiros CSV que contêm dados de tendências. Este tutorial o guiará por todo o processo.
Primeiro, verifique se o Playwright está instalado:
playwright install
Se você não quiser instalar todos os navegadores, basta usar este comando para instalar apenas o navegador chromium.
playwright install chromium
Ao fazer scraping de plataformas como o Google, que combatem ativamente a atividade dos bots, é essencial utilizar proxies. Os proxies permitem a rotação de IPs, ajudando a reduzir o risco de serem bloqueados. No nosso script, utilizamos proxies privados para encaminhar os nossos pedidos.
proxy = {
"server": "IP:PORT",
"username": "your_username",
"password": "your_password"
}
Substitua as variáveis IP, PORT, nome de utilizador e palavra-passe pelos dados reais do seu servidor proxy.
Neste exemplo, navegamos primeiro para google.com para contornar quaisquer potenciais bloqueios antes de irmos para a página Google Trends. Isto é feito para imitar o comportamento normal do utilizador e evitar a deteção.
Esta etapa envolve ações preliminares para evitar ser sinalizado e bloqueado pelo Google:
import asyncio
from playwright.async_api import Playwright, async_playwright
async def run(playwright: Playwright) -> None:
# Iniciar o browser com definições de proxy
browser = await playwright.chromium.launch(headless=False, proxy={
"server": "IP:PORT",
"username": "your_username",
"password": "your_password"
})
# Criar um novo contexto de browser
context = await browser.new_context()
# Abrir uma nova página
page = await context.new_page()
# Visitar o Google para imitar a navegação normal
await page.goto("https://google.com")
Em seguida, navegue diretamente para a página do Google Trends onde os dados necessários estão localizados. O Google Trends fornece opções para descarregar os dados diretamente no formato CSV, o que facilita o processo de extração. Automatize a ação de clicar no botão "Transferir" para iniciar a transferência de dados. Isto permite a extração de dados de tendências sem intervenção manual. Quando o botão "Download" ficar visível, a automação deve clicar nele, iniciando o download do arquivo CSV que contém os dados de tendência necessários.
# Navegar para o Google Trends
await page.goto("https://trends.google.com/trends/explore?q=%2Fg%2F11bc6c__s2&date=now%201-d&geo=US&hl=en-US")
# Esperar pelo botão de transferência e clicar nele
async with page.expect_download() as download_info:
await page.get_by_role("button", name="file_download").first.click()
# Gerir a transferência
download = await download_info.value
print(download.suggested_filename)
O ficheiro CSV transferido é guardado automaticamente num diretório especificado no seu dispositivo local.
# Guardar o ficheiro descarregado
await download.save_as("/path/to/save/" + download.suggested_filename)
Aqui está o código completo para baixar dados do Google Trends como um arquivo CSV usando o Playwright:
import asyncio
import os
import re
from playwright.async_api import Playwright, async_playwright
async def run(playwright: Playwright) -> None:
# Iniciar o browser com definições de proxy
browser = await playwright.chromium.launch(headless=False, proxy={
"server": "IP:PORT",
"username": "your_username",
"password": "your_password"
})
# Criar um novo contexto de browser
context = await browser.new_context()
# Abrir uma nova página
page = await context.new_page()
# Visitar o Google para evitar a deteção
await page.goto("https://google.com")
# Navegar para o Google Trends
await page.goto("https://trends.google.com/trends/explore?q=%2Fg%2F11bc6c__s2&date=now%201-d&geo=US&hl=en-US")
# Clique no botão de transferência
async with page.expect_download() as download_info:
await page.get_by_role("button", name=re.compile(r"file_download")).first.click()
# Guardar o ficheiro descarregado
download = await download_info.value
destination_path = os.path.join("path/to/save", download.suggested_filename)
await download.save_as(destination_path)
# Fechar o contexto e o browser
await context.close()
await browser.close()
async def main() -> None:
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
Seguindo este guia, pode descarregar eficazmente dados de tendências, gerir a rotação de proxy e contornar os mecanismos de proteção contra bots. Para evitar o bloqueio eficaz, é crucial utilizar servidores proxy fiáveis. Os proxies residenciais, que oferecem endereços IP dinâmicos e não precisam de configuração de rotação, são altamente recomendados. Em alternativa, os proxies ISP estáticos também são eficazes; compre o número necessário de IPs e configure a rotação regular de IPs no seu script. Qualquer uma das opções garante um risco mínimo de bloqueio e captcha, facilitando uma recolha de dados mais rápida e suave.
Мы получили вашу заявку!
Ответ будет отправлен на почту в ближайшее время.
С уважением proxy-seller.com!
Comentários: 0