1. Abrindo o DevTools
O Google Chrome DevTools é um conjunto de ferramentas para desenvolvedores integrado no navegador Chrome, que permite explorar e analisar páginas da web. Para quem faz web scraping, o DevTools se torna uma ferramenta indispensável, já que ajuda a entender melhor a estrutura das páginas, identificar seletores, analisar conteúdo dinâmico e requisições de rede. Neste artigo, vamos discutir como o DevTools pode ajudar no processo de coleta de dados e melhorar a eficiência do scraping.
Para abrir o Chrome DevTools, você pode:
- Pressionar F12 ou Ctrl+Shift+I (Windows) ou Cmd+Opt+I (Mac).
- Clicar com o botão direito na página e selecionar Ver código-fonte ou Inspecionar.
As abas mais úteis para quem faz web scraping no DevTools são: Elements, Console, Network, Sources e Application.
2. Aba Elements
Aba Elements: explorando HTML e CSS
A aba Elements é a ferramenta principal para analisar a estrutura da página e selecionar elementos. Aqui você pode visualizar, editar e copiar a estrutura HTML e CSS da página.
Principais funcionalidades da aba Elements:
- Definir seletores. Clique no ícone de seta no canto superior esquerdo do painel e escolha qualquer
elemento na página. No DevTools será exibido o código HTML correspondente. Isso é útil para identificar
atributos como
id
,class
e outros, que podem ser usados em seletores CSS ou Xpath para scraping. - Editar HTML e CSS em tempo real. Você pode alterar o HTML e CSS dos elementos para testar visualmente, o que ajuda a entender como as mudanças afetam a página. Por exemplo, você pode esconder certos elementos ou alterar cores para entender melhor quais partes da página são úteis para você.
- Copiar seletores. Clicando com o botão direito em um elemento, é possível escolher “Copy” e copiar seu CSS Selector ou XPath, algo especialmente prático para web scraping.
Exemplo: Se você precisa selecionar o texto de um cabeçalho <h1>
, basta clicar nele e
copiar seu seletor para usar depois no código de extração.
3. Aba Console
Aba Console: executando JavaScript para conteúdo dinâmico
Console permite digitar e executar código JavaScript diretamente na página. Isso é útil para interagir com conteúdo dinâmico e analisar o JavaScript que controla os elementos.
Aplicações do Console para quem faz scraping:
- Extração de dados com JavaScript. Você pode usar comandos simples, como
document.querySelector
, para testar a seleção de elementos e garantir que o seletor funcione corretamente. - Executar código para interagir com elementos. Por exemplo, se precisar “clicar” em um botão ou “carregar” parte do conteúdo, o Console permite executar código para testar como os elementos respondem a eventos.
- Identificar erros. Se o scraping está sendo feito via automação, a aba Console permite visualizar erros relacionados ao JavaScript ou às requisições de rede, ajudando a entender porque certos elementos não carregam ou não aparecem.
Exemplo: Se você precisa testar a seleção de um botão com a classe load-more
, no Console você pode
digitar document.querySelector('.load-more').click()
e ver como o botão reage ao comando.
4. Aba Network
Aba Network: analisando requisições de rede
Network é uma aba fundamental para analisar as requisições de rede feitas pela página. Muitos sites carregam dados por meio de requisições assíncronas (como AJAX), o que pode dificultar o scraping. A aba Network permite rastrear todas as requisições, fazer cópias e analisar as respostas do servidor.
Principais funcionalidades da aba Network:
- Acompanhar requisições AJAX. Durante o carregamento da página, você pode ver todas as requisições feitas, além das respostas. Isso é particularmente útil se os dados forem carregados dinamicamente. É possível rastrear quais requisições retornam os dados necessários e depois reproduzi-las no código para obter os dados diretamente.
- Copiar requisições. Clicando com o botão direito em uma requisição, você pode copiá-la como cURL ou fetch. Isso permite reproduzir essas requisições para obter os dados diretamente do servidor.
- Analisar parâmetros da requisição. A aba Network exibe cabeçalhos, parâmetros e cookies enviados com as requisições. Isso ajuda a entender quais dados o servidor precisa para processar a requisição. Por exemplo, muitos sites usam tokens de autenticação para proteger os dados, e a análise dos cabeçalhos das requisições permite entender como contornar essas restrições.
Exemplo: se os dados são carregados dinamicamente via requisição AJAX, você pode selecionar a requisição correspondente na aba Network, verificar seu URL e resposta para usar essa requisição no seu código e obter os dados diretamente.
5. Aba Sources
Aba Sources: analisando JavaScript e conteúdo dinâmico
Sources é a aba onde você pode explorar arquivos JavaScript, CSS, imagens e outros recursos da página. Para quem faz scraping, ela é útil para analisar a lógica do site e como ele lida com conteúdo dinâmico.
Principais funcionalidades da aba Sources:
- Encontrar arquivos JavaScript. Em muitos sites, os dados ou a funcionalidade são carregados via JavaScript. Na aba Sources, você pode localizar e abrir arquivos JavaScript que controlam exibição e carregamento de dados.
- Definir breakpoints. Isso permite pausar a execução do código em uma linha específica e observar como os dados são carregados e como diferentes elementos interagem. É especialmente útil para analisar páginas que usam JavaScript complexo.
- Visualizar valores de variáveis. Você pode acompanhar mudanças em variáveis e entender melhor a lógica do site, o que pode ajudar se o conteúdo for carregado por funções JavaScript complexas.
6. Aba Application
Aba Application: trabalhando com cookies e Local Storage
Application é a aba onde você pode explorar cookies, Local Storage e outros dados armazenados no lado do cliente. Esses dados podem ser úteis ao trabalhar com sites que exigem autenticação ou rastreiam ações do usuário.
Principais funcionalidades da aba Application para quem faz scraping:
- Análise de cookies. Muitos sites usam cookies para autenticação ou rastreio de usuários. Na análise de requisições com autenticação, a aba Application permite ver quais cookies são necessários para acessar o conteúdo.
- Explorando Local Storage e Session Storage. Esses armazenamentos também são usados para guardar informações no lado do cliente. Se o site carregar dados ou configurações a partir do Local Storage, você pode extrair essa informação e usá-la no seu código de scraping.
- Trabalhar com tokens de autenticação. Alguns sites armazenam tokens no Local Storage ou cookies. Sabendo como o token é armazenado e atualizado, você pode acessar os dados via API ou requisições AJAX.
Exemplo: se o site exige autenticação, a aba Application permite capturar os cookies ou tokens necessários e usá-los para fazer requisições.
7. Dicas práticas
Dicas práticas para usar o DevTools no scraping
- Procure dados na aba Network. Se o conteúdo for carregado de forma assíncrona, encontre a requisição certa na aba Network e examine seu URL, parâmetros e cabeçalhos.
- Use o Console para testar seletores. Antes de implementar o código de scraping, teste seletores no Console com comandos como
document.querySelector
oudocument.querySelectorAll
. - Copie requisições fetch para API. Se o site usar API, a aba Network permite copiar a requisição e testá-la no script para obter os dados diretamente, sem passar pela estrutura HTML.
- Encontre scripts que controlam o conteúdo. Na aba Sources, localize arquivos JavaScript que controlam o conteúdo dinâmico e entenda como eles funcionam para adaptar a lógica ao scraping.
- Estude tokens de autenticação e cookies. Alguns sites protegem os dados usando cookies ou tokens, então é útil salvar essas informações e passá-las nas requisições.
GO TO FULL VERSION