De volta ao blog

Tutorial de Web Crawler em Python: Requests para Playwright

Alex Johnson
Alex Johnson

Senior Web Scraping Engineer

28-Aug-2026

TL;DR:

  • Um rastreador da web em Python é uma fila com regras. Ele começa a partir de uma ou mais URLs, normaliza os links descobertos, rejeita duplicatas, impõe escopo e registra o que aconteceu com cada página.
  • Requests e Beautiful Soup são a base certa para páginas renderizadas no servidor. Eles mantêm a rastreamento rápido e tornam as falhas fáceis de inspecionar.
  • Playwright pertence ao ramo do JavaScript, não a cada URL. Renderize apenas páginas cujo conteúdo necessário esteja ausente da resposta inicial.
  • Scrapeless Scraping Browser move a execução do navegador para fora do processo do rastreador. É útil quando sessões gerenciadas e renderização dinâmica se tornam o principal custo operacional.

Um rastreador decide para onde ir a seguir com base no que acabou de buscar. Isso torna a política de URL, o estado da fila e a deduplicação mais importantes do que qualquer seletor CSS individual.

Este tutorial constrói o design em camadas: HTTP simples para páginas estáveis, renderização de navegador para conteúdo do lado do cliente e, em seguida, execução gerenciada do navegador quando o Chromium local se torna a limitação.

O que é um Rastreador da Web em Python?

Um rastreador da web em Python é um programa que descobre páginas seguindo links a partir de um conjunto inicial. A raspagem da web extrai campos de uma página conhecida; o rastreamento descobre quais páginas existem e as agenda para processamento posterior.

As duas funções frequentemente compartilham um processo, mas devem permanecer separadas no design. A descoberta retorna URLs canônicas e metadados de relacionamento. A extração retorna registros como título, preço, data ou texto do corpo.

O Pipeline do Rastreador em um Relance

Estágio Entrada Saída Regra principal
Semente URLs iniciais Fila inicial Use domínios permitidos explícitos
Buscar URL canônica Resposta HTTP ou página renderizada Defina um tempo limite claro
Descobrir Documento HTML Links candidatos Resolver URLs relativas
Normalizar URL candidata URL canônica Remover fragmentos e normalizar a capitalização do host
Filtrar URL canônica URL aceita ou rejeitada Impor escopo de domínio, caminho e profundidade
Deduplicar URL aceita Item novo na fila ou registro existente Chave na forma canônica
Extrair Conteúdo da página Registro estruturado Tratar campos opcionais como anuláveis
Armazenar Registro mais proveniência Conjunto de dados durável Preservar URL de origem e hora de coleta

Caminho A: Requests e Beautiful Soup para Páginas Estáticas

Requests é apropriado quando a resposta inicial já contém os links e campos que o rastreador precisa. Beautiful Soup então transforma o HTML em uma árvore pesquisável.

Comece com um deque para travessia em largura, um conjunto para URLs canônicas visitadas e um limite rigoroso de páginas. Resolva links relativos com urljoin, e em seguida verifique o nome do host após a resolução. A syntaxe genérica de URI define como referências relativas e fragmentos se encaixam no modelo de URL.

Não marque uma URL como visitada apenas após uma busca bem-sucedida. Marque-a quando entrar na fila; caso contrário, duas páginas pai podem agendar o mesmo filho antes que qualquer solicitação seja concluída.

Normalizar URLs Antes da Deduplicação

A normalização de URL determina se /products, /products#reviews e uma URL absoluta equivalente se tornam um alvo de rastreamento ou três. Um canonizador conservador deve:

  • converter para minúsculas o esquema e o nome do host;
  • remover fragmentos;
  • resolver segmentos de caminho . e ..;
  • remover portas padrão;
  • preservar parâmetros de consulta a menos que seu significado seja conhecido;
  • rejeitar esquemas não-HTTP antes de agendar.

O Padrão de URL WHATWG documenta o comportamento do parser implementado por navegadores modernos. Mantenha a normalização conservadora, pois a remoção de um parâmetro de consulta desconhecido pode colapsar recursos distintos.

Impor Escopo, Profundidade e Orçamento de Rastreamento

Um rastreador precisa de regras de parada explícitas antes de enviar a primeira solicitação. Defina hosts permitidos, prefixos de caminho aceitos, profundidade máxima e número máximo de páginas. Profundidade é o número de arestas de link a partir da semente, não um proxy para hierarquia do site.

Armazene o pai da descoberta com cada item da fila. Isso cria um grafo de URL que ajuda a explicar por que uma página foi visitada e torna padrões de calendário infinito ou navegação facetada visíveis.

Comece a Raspagem com Scrapeless

Potencialize seu fluxo de trabalho de raspagem da web e automação com Scrapeless!
Inscreva-se hoje e receba $5 em crédito gratuitosem necessidade de cartão de crédito.

Reclame seu crédito grátis agora no Painel do Scrapeless.

Respeitar Robots e Política do Site

As diretivas de robôs fazem parte do planejamento de rastreamento, não um pensamento posterior. O Protocolo de Exclusão de Robôs define como os rastreadores descobrem e interpretam regras robots.txt.
Verifique os termos e leis aplicáveis, identifique o rastreador onde for apropriado e mantenha a coleta limitada a páginas públicas permitidas. Uma regra de robots não é um mecanismo de autorização, portanto, um caminho permitido não substitui a análise legal e contratual.

Caminho B: Playwright para Páginas JavaScript

Playwright é apropriado quando os links ou campos necessários aparecem apenas após a execução do lado do cliente. Roteie essas páginas para uma ramificação do navegador após provar que a resposta inicial está incompleta.

Use domcontentloaded como o evento de navegação inicial, então aguarde um estado específico da página ligado aos dados. A orientação de localizadores do Playwright recomenda papel, rótulo, texto e outros atributos visíveis ao usuário quando eles correspondem ao alvo.

Feche cada página e contexto do navegador após a extração. Os recursos do navegador não devem viver no mesmo loop não limitado que as requisições HTTP leves.

O Scrapeless Scraping Browser é útil quando a ramificação do navegador do rastreador precisa de sessões gerenciadas, roteamento geográfico e capacidade de navegador em produção. O quickstart do Scraping Browser cobre o caminho de conexão atual.

Mantenha a fila do rastreador, regras de URL, esquema de extração e armazenamento sob controle da aplicação. Mova apenas a camada de execução do navegador. Essa separação permite que páginas estáticas permaneçam em Requests enquanto páginas dinâmicas usam um navegador gerenciado.

Armazenar Estado de Rastreamento para Retomada

Persista estados enfileirados, em progresso, concluídos, rejeitados e com falhas separadamente. Armazene a URL canônica, pai de descoberta, profundidade, método de busca, status da resposta, hash de conteúdo e versão do analisador.

Um hash de conteúdo impede que páginas inalteradas entrem novamente no processamento a jusante. Uma versão do analisador torna as mudanças de esquema rastreáveis quando uma atualização de seletor altera a saída histórica.

Revise os preços do Scrapeless após medir a porcentagem de páginas que realmente requerem execução do navegador. O guia de melhores práticas do Scraping Browser explica como operar trabalhos com suporte de navegador de forma confiável uma vez que as páginas cruzam esse limite.

Conclusão

Um rastreador confiável em Python é um gráfico de URL controlado. Comece com Requests e Beautiful Soup, normalize antes da deduplicação, imponha o escopo antes do agendamento e roteie apenas páginas dependentes de JavaScript através do Playwright ou Scrapeless Scraping Browser.

Pronto para Construir um Pipeline de Rastreamento Controlado?

Junte-se aos desenvolvedores que constroem pipelines de dados da web no Discord ou Telegram. Crie uma conta em app.scrapeless.com e meça a ramificação do navegador em relação ao seu conjunto real de URLs.

FAQ

Q: Qual é a diferença entre rastreamento e extração?

Rastreamento descobre e agenda páginas; extração extrai campos de uma página. Um pipeline pode fazer os dois, mas estados e saídas separados facilitam a operação.

Q: O rastreamento na web é legal?

O rastreamento na web pode ser legal quando acessa páginas públicas permitidas, mas os requisitos variam conforme a jurisdição e o site. Revise os termos aplicáveis, obrigações de privacidade e aconselhamento jurídico para o caso de uso.

Q: Um rastreador Python precisa de um proxy?

Um proxy é útil quando a coleta autorizada requer roteamento geográfico ou egressos distribuídos. Isso não altera a obrigação do rastreador de respeitar o escopo e a política.

Q: Como um rastreador deve lidar com uma página de Acesso Negado?

Registre a página como um resultado de acesso distinto, pare a extração para aquela URL e revise a sessão, egresso e suposições de autorização antes de continuar o fluxo de trabalho.

Q: O que acontece quando o DOM muda?

Reverifique os seletores de descoberta e extração em relação aos fixadores salvos, atualize a versão do analisador e trate campos ausentes como anuláveis até que o novo esquema seja confirmado.

Q: Quanta concorrência um rastreador deve usar?

Comece com não mais do que três trabalhadores por host e diminua o limite quando a política do site ou o comportamento do servidor exigir. Trabalhos de navegador devem usar um pool de capacidade separado e mais restrito.

Q: O rastreador pode funcionar sem um agente de IA?

Sim. A fila, a política de URL, o cliente HTTP, a ramificação do navegador e o pipeline de armazenamento podem funcionar como serviços Python comuns sem um modelo.

Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.

Artigos mais populares

Catálogo