Masterclass de extração dinâmica de dados
Técnicas de especialistas em Puppeteer, Playwright e Selenium
44:56
advanced
June 25, 2024
Está tendo dificuldades com conteúdo dinâmico e dados assíncronos na extração de dados da web? Neste webinar, abordaremos os pontos problemáticos comuns enfrentados pelos desenvolvedores. Aprenda soluções práticas para problemas dinâmicos de web scraping que os desenvolvedores enfrentam. Você obterá informações sobre como escalar sua infraestrutura de navegador para operações de extração de dados em grande escala. Este webinar foi desenvolvido para ajudá-lo a superar esses desafios e aprimorar significativamente seus recursos de web scraping.
Neste webinar ao vivo de 45 minutos, você aprenderá como
  • Lidar com a limitação de taxa e o bloqueio de IP
  • Gerenciar a alteração de localizadores e classes HTML
  • Navegar pelo roteamento do lado do cliente em SPAs
  • Manipular dados carregados de forma assíncrona
  • Simular interações do usuário para carregamento lento
  • Acessar dados nos componentes do Shadow DOM
  • Garanta capturas de tela de página inteira de conteúdo dinâmico
  • Escalar a infraestrutura de navegador para coleta em grande escala
Inicie seu teste gratuito
Inicie seu teste gratuito
Speakers
Dario Kondratiuk
Desenvolvedor Web e MVP da Microsoft
Diego Molina
Líder técnico da Sauce Labs
Greg Gorlen
Engenheiro de software Full Stack
Realizando operações de extração de dados em larga escala? Entre em contato conosco para uma oferta imbatível
Contact us

Introdução à extração de dados dinâmica

O web scraping envolve a extração de dados de sites, o que pode ser particularmente desafiador com conteúdo dinâmico que muda com frequência. Nossos especialistas, Greg, Dario e Diego, forneceram conselhos práticos sobre como superar esses desafios usando ferramentas como Puppeteer, Selenium e Playwright.

Greg: com base em San Francisco, Greg trabalha na Andela e é especialista em engenharia de software tradicional e web scraping.
Dario: da Argentina, Dario está com Mabel, concentrando-se em ferramentas de automação de controle de qualidade de baixo código e contribuindo para a versão.NET do PuppeteerSharp e do Playwright.
Diego: vindo de Valência, Espanha, Diego é líder no projeto Selenium e líder de código aberto na Sauce Labs, uma plataforma de testes em nuvem.

Principais pontos de discussão

1. Acompanhando as mudanças de HTML

Greg enfatizou a importância de escolher seletores confiáveis. Evite longas cadeias de seletores codificados, como div > div > p. Em vez disso, use seletores mais estáveis, como aria-label ou seletores baseados em texto. Melhor ainda, intercepte solicitações de API quando possível, pois elas têm menos probabilidade de mudar do que o DOM.

Ferramentas e técnicas:

  • Mozilla Readability: converte HTML complexo em um formato limpo e legível.
  • Intercepção de API: acesse diretamente os endpoints de dados para contornar as alterações do DOM.

2. Navegando pelo roteamento do lado do cliente e por aplicativos de página única (SPAs)

Dario discutiu como lidar com SPAs, que geralmente usam roteamento do lado do cliente, tornando a extração de dados complicada. Pontos-chave incluídos:

  • Evite confiar nos carregamentos iniciais: use várias verificações para confirmar que a página está totalmente carregada.
  • Verifique o contexto: verifique se você está na etapa correta dos processos de várias etapas verificando títulos ou outros elementos estáveis.
  • Ferramentas: use as funções de navegação e espera do Playwright ou Puppeteer de forma eficaz.

3. Acessando dados carregados de forma assíncrona

Diego recomendou o uso de estruturas que lidam com a sincronização automaticamente, como Selenide para Java ou WebDriverIO para JavaScript. Essas estruturas simplificam a espera pelo carregamento dos elementos fornecendo métodos integrados.

Dicas:

  • Predicados orientados por eventos: use waitForFunction para esperar por estados específicos no DOM.
  • Solicitar interceptação: capture e trabalhe diretamente com as respostas da API quando possível.

4. Imitando interações do usuário para carregamento lento

Greg forneceu técnicas para lidar com o carregamento lento, em que o conteúdo é carregado conforme você interage com a página. As principais estratégias incluíram:

  • Interações com o teclado: use as teclas de página para baixo para acionar o carregamento.
  • Capture dados de forma incremental: salve os dados em partes para evitar perdas se um script falhar.
  • Evite interações do usuário quando possível: intercepte diretamente as respostas da API para ignorar a necessidade de ações do usuário.

5. Extraindo informações dos componentes do Shadow DOM

Dario explicou como lidar com o Shadow DOM, que encapsula partes da página da web, tornando-as mais difíceis de raspar. Pontos-chave incluídos:

  • Compreendendo Shadow DOM aberto versus fechado: a maioria das ferramentas pode abrir o Shadow DOM, mas não fechado.
  • Tratamento manual de JavaScript: use a propriedade shadowRoot para acessar elementos no Shadow DOM manualmente.
  • Suporte à estrutura: ferramentas como Playwright e Puppeteer lidam com o Shadow DOM de forma eficaz.

6. Capturando capturas de tela de página inteira

Diego recomendou usar o Firefox para capturas de tela de página inteira, pois ele tem um comando nativo para essa finalidade. Integrar o Selenium com o protocolo Chrome DevTools é outro método eficaz.

Dicas:

  • Network Idle: certifique-se de que todos os elementos estejam carregados antes de capturar as capturas de tela.
  • Use métodos integrados: ferramentas como a opção fullPage do Puppeteer simplificam o processo.

7. Operações em grande escala

Jacob discutiu os desafios de escalar as operações de web scraping, como gerenciamento de impressões digitais, tratamento de sessões e rotação de IPs. Ele apresentou o Scraping Browser da Bright Data, que abstrai essas complexidades, permitindo que os desenvolvedores se concentrem na criação de scripts.

Características principais:

  • Gerenciamento de sessões: manipule automaticamente as sessões para evitar a detecção.
  • Rotação de IP: use uma variedade de endereços IP para simular usuários diferentes.
  • Ambiente para testes: teste seus scripts em um ambiente controlado antes de aumentar a escala.

Sessão interativa de perguntas e respostas

O webinar foi concluído com uma sessão de perguntas e respostas em que os participantes perguntaram sobre vários aspectos do web scraping. Os principais tópicos incluídos:

  • Interceptando chamadas de API de front-end: use as ferramentas de desenvolvimento do navegador para identificar e replicar solicitações de API.
  • Seletores robustos: evite usar XPath; em vez disso, use seletores mais estáveis e confiáveis.
  • Tratamento da autenticação: armazene tokens de autenticação em cache e manipule a autenticação de dois fatores manualmente quando necessário.

Conclusão

Este webinar forneceu uma riqueza de conhecimento para desenvolvedores que desejam dominar a extração de dados dinâmica da web. Ao aproveitar os insights compartilhados por Greg, Dario e Diego, você pode aprimorar suas técnicas de raspagem, tornando seus scripts mais robustos e eficientes. Para quem perdeu a sessão ao vivo, a gravação estará disponível em breve. Fique ligado para mais conteúdo educacional da Bright Data, ajudando você a se destacar em captura de dados e extração de dados na web.

Boa extração de dados!

The Data You Need
Is Only One Click Away.