Robots.txt para o Guia de Scraping de dados

Neste guia, você aprenderá sobre o robots.txt, por que ele é importante para o Scraping de dados e como usá-lo no processo de extração.
10 min de leitura
Robots.txt for web scraping

Este guia de scraping de dados do robots.txt abordará:

  • O que é o robots.txt?
  • Por que é importante para o Scraping de dados da web?
  • Consequências de ignorá-lo ao fazer web scraping em um site
  • Diretivas comuns que você precisa saber para o Scraping de dados
  • Como usá-lo em um processo de Scraping de dados

O que é o robots.txt?

robots.txt é um arquivo de texto usado para implementar o Robots Exclusion Protocol (REP), um padrão para instruir robôs da web sobre como interagir com um site. Em detalhes, o robots.txt especifica quais bots têm permissão para visitar o site, quais páginas e recursos eles podem acessar, em que frequência e muito mais. Esses bots são geralmente rastreadores da web usados por mecanismos de pesquisa como Google, Bing e DuckDuckGo para indexar a Web.

De acordo com a especificação do Google, cada domínio (ou subdomínio) pode ter um arquivo robots.txt. Isso é opcional e deve ser colocado no diretório raiz do domínio. Em outras palavras, se a URL base de um site for https://example.com, o arquivo robots.txt estará disponível em https://example.com/robots.txt.

Por exemplo, eis como se apresenta o robots.txt da Bright Data:

User-agent: *

Disallow: /lum/

Disallow: /www/*.html

Disallow: /use-cases/fintech

Proibido: /produtos/conjuntos de dados2/

Proibir: /eventos/*

Proibir: /wp-stage/*

Proibir: /www/*

Proibir: /svc/*

Host: brightdata.com

Mapa do site: https://brightdata.com/sitemap_index.xml

Como você pode ver, este é apenas um arquivo de texto contendo um conjunto de regras e diretivas para bots da web.

Lembre-se de que diretivas como User-agent e Disallow não diferenciam maiúsculas de minúsculas. Por outro lado, os valores diferenciam maiúsculas de minúsculas. Portanto, /lum/ não é o mesmo que /Lum/.

Por que isso é importante para o Scraping de dados da web?

Os bots para os quais o arquivo robots.txt fornece instruções não são apenas robôs de rastreamento de mecanismos de pesquisa. Isso também considera todos os softwares automatizados que interagem com um site, incluindo web scrapers. No final das contas, os programas de scraping de dados nada mais são do que bots automatizados. Além disso, eles normalmente realizam rastreamento na web como os bots dos mecanismos de pesquisa. Saiba mais em nosso guia comparativo sobre rastreamento na web x Scraping de dados.

Ao fazer scraping de um site, é fundamental respeitar o arquivo robots.txt do site de destino. Isso implica:

  • Conformidade legal: os Scrapers devem cumprir as regras definidas pelos proprietários dos sites, para uma abordagem ética do Scraping de dados.
  • Redução da carga do servidor: os rastreadores e Scrapers consomem muitos recursos, e respeitar as diretrizes ajuda a evitar a sobrecarga de um site.
  • Evitar o acionamento de medidas anti-bot: muitos sites monitoram o tráfego da web recebido para bloquear bots não autorizados que não cumprem as regras declaradas.

Agora a questão é: o que acontece se o seu script de scraping não respeitar o robots.txt? Vamos descobrir isso na seção abaixo!

Consequências de ignorar o robots.txt ao fazer scraping de um site

Os sites reagem de maneiras muito diferentes às violações de seu arquivo robots.txt. Às vezes, nada acontece. Outras vezes, você pode enfrentar consequências graves. Em geral, aqui estão os cenários que você precisa levar em consideração ao ignorar o robots.txt no Scraping de dados:

  • Bloqueios e operações interrompidas: as tecnologias anti-scraping e anti-bot provavelmente banirão seu IP temporária ou permanentemente. Isso compromete a eficiência de um processo de scraping.
  • Ações legais: se você não cumprir, ações legais podem ser tomadas. Isso é possível se a impressão digital deixada pelo script de scraping de dados puder revelar sua identidade. Proteja sua privacidade com um Proxy de scraping de dados
  • Maior escrutínio: profissionais de segurança da web, provedores de internet e organizações de segurança cibernética podem começar a investigar suas atividades de Scraping de dados.

Esses são apenas alguns exemplos, mas são suficientes para entender a relevância do assunto. Para aderir ao robots.txt, você deve primeiro entender o significado de suas instruções. É hora de se aprofundar nisso!

Diretivas comuns do robots.txt que você precisa saber para o Scraping de dados

A especificação REP envolve apenas algumas diretivas que um arquivo robots.txt pode especificar. Com o tempo, as especificações dos mecanismos de pesquisa introduziram outras regras possíveis. Elas representam um padrão de fato e também devem ser levadas em consideração.

Agora, dê uma olhada nas diretivas mais relevantes do robots.txt para Scraping de dados.

User-agent

User-Agent especifica quais agentes de usuário têm permissão para rastrear o site. Um user-agent pode ser um rastreador da web, spider, Scraper ou qualquer bot. Normalmente, os administradores de sites usam essa diretiva para limitar ou instruir rastreadores de mecanismos de pesquisa específicos.

A sintaxe da diretiva é:

User-agent: <nome_do_agente_do_usuário>

Disallow: [valor]

Se <nome_do_agente_do_usuário> for *, isso significa que qualquer bot tem permissão para interagir com o site. A instrução Disallow deve conter caminhos relativos e restringir o acesso a partes específicas do site.

As strings de agente de usuário populares são:

Motor de busca Nome do agente do usuário
Baidu baiduspider
Bing bingbot
Google Googlebot
Yahoo! slurp
Yandex yandex

Considere o exemplo abaixo:

User-agent: *

Proibir: /private/

O arquivo robots.txt acima proíbe todos os agentes de usuário de visitar páginas no caminho /private/. Assim, /private/admin-login.php é proibido, mas também /private/platform/dashboard.php. Isso implica que os arquivos dentro das subpastas também são afetados pela regra Disallow.

Observe que o mesmo agente do usuário pode ter mais de uma regra Disallow:

User-agent: *

Proibir: /private/

Proibir: /admin/

Desta vez, os caminhos /private/ e /admin/ são proibidos.

Quando Disallow não tem valor, todas as páginas são permitidas para acesso:

Agente do usuário: *

Proibir:

Se, em vez disso, contiver o valor /, significa que todas as páginas são proibidas:

User-agent: *

Disallow: /

O padrão oficial para o padrão robots.txt não menciona expressões regulares ou curingas para Disallow, mas todos os principais mecanismos de pesquisa as esperam. Portanto, é bastante comum ver algo como isto:

Proibir: /*.php

Disallow: /recursos/*.pdf

Isso impede que seus bots acessem arquivos PDF em /recursos/ e arquivos PHP.

Uma instrução oposta não padrão para Disallow é Allow, que especifica os únicos caminhos permitidos. Veja o exemplo a seguir:

User-agent: *

Permitir: /

Isso corresponde a:

User-agent: *

Proibir:

Permitir pode substituir rotas específicas bloqueadas por Não permitir:

Agente do usuário: *

Proibir: /private/

Permitir: /private/terms-and-conditions.php

Neste exemplo de robots.txt, todas as páginas em /private/ são proibidas, exceto /private/terms-and-conditions.php.

Lembre-se de que o mesmo arquivo robots.txt pode ter várias diretivas User-agent para direcionar diferentes robôs da web:

User-agent: Googlebot

Proibir:

User-agent: bingbot

Proibir: /blog/

Mapa do site

Mapa do site é uma diretiva não padrão que contém a localização do mapa do site XML de um site:

Mapa do site: https://www.example.com/sitemap.xml

Esta regra informa aos bots a localização do mapa do site XML, que fornece informações úteis sobre a estrutura do site. Seguir as URLs contidas em um mapa do site facilita a extração de um site inteiro. Explore nosso Scraper de mapa do site!

Observe que a URL que aponta para o arquivo do mapa do site deve ser absoluta.

Como um site pode ter vários mapas, o robots.txt pode incluir muitas diretivas Sitemap:

Mapa do site: https://www.example.com/sitemaps/page-sitemap.xml

Mapa do site: https://www.example.com/sitemaps/post-sitemap.xml

Mapa do site: https://www.example.com/sitemaps/author-sitemap.xml

Atraso de rastreamento

A diretiva Crawl-Delay, não oficial e pouco popular, define quantos segundos os rastreadores da web devem esperar entre solicitações sucessivas ao site:

User-agent: *

Atraso de rastreamento: 5

É uma diretiva específica do agente do usuário cujo objetivo é evitar a sobrecarga dos servidores. Neste exemplo, todos os agentes do usuário são instruídos a esperar um atraso de 5 segundos entre as visitas às páginas.

Taxa de solicitação

A diretiva Request-Rate, rara, específica do agente do usuário e não padrão, especifica o número máximo de solicitações que um agente do usuário pode fazer ao site dentro de um período de tempo especificado:

Agente do usuário: *

Taxa de solicitação: 1/10

Por exemplo, essa regra instrui todos os agentes de usuário a limitar suas solicitações a uma a cada 10 segundos.

O formato seguido pelos valores da taxa de solicitação é:

<número_de_solicitações>/<segundos>

Essa diretiva é semelhante ao Crawl-Delay, pois ambas ajudam a evitar a sobrecarga do servidor. A principal diferença é que o Crawl-delay consegue isso impondo um atraso, enquanto a taxa de solicitação impõe restrições de limitação de taxa.

Como usar o robots.txt em um processo de Scraping de dados

Agora você sabe o que é o robots.txt e como ele funciona. Resta apenas ver como integrar seu uso em um processo de Scraping de dados. Aqui está o que você precisa fazer para respeitar o arquivo robots.txt para Scraping de dados:

  1. Acesse o arquivorobots.txt do site de destino:
    • Envie uma solicitação HTTP GET para o caminho /robots.txt para baixar o arquivo ou abri-lo no navegador.
  2. Examine seu conteúdo:
    • Leia as diretivas contidas no arquivo robots.txt.
    • Verifique se há regras Disallow que restringem o acesso a URLs ou diretórios específicos.
    • Procure regras Allow que possam conceder acesso a determinadas áreas dentro de caminhos não permitidos.
    • Examine as diretivas Crawl-delay e Request-rate, se especificadas.
  3. Crie seu script de scraping:
    • Crie ou modifique seu Scraper, certificando-se de que ele esteja em conformidade com as regras definidas no robots.txt.
    • Evite acessar URLs que são proibidas para o seu agente de usuário.
    • Implemente mecanismos de limitação no seu Scraper para respeitar os limites de Crawl-delay ou Request-rate.

Como você pode ver, é necessário analisar as diretivas contidas no robots.txt antes de criar seu Scraper. Somente assim você poderá evitar as consequências mencionadas anteriormente.

Et voilà! Agora você é um especialista no Scraping de dados do robots.txt!

Conclusão

Neste artigo, você viu o que é o robots.txt, por que os sites o utilizam e como ele pode ajudar seu Scraper a evitar ser bloqueado. Em detalhes, você analisou suas diretivas que podem afetar seus objetivos de recuperação de dados online. Você também aprendeu como estruturar um processo de scraping ético em torno dele.

Infelizmente, não importa o quanto seu script esteja em conformidade com o robots.txt, as soluções anti-scraping ainda podem bloqueá-lo. Como evitar isso? Com um Proxy. Existem vários provedores disponíveis online, e experimentá-los todos levaria meses. Felizmente, resolvemos esse problema para você.

A Bright Data controla os melhores servidores Proxy, atendendo a mais de 20.000 clientes e empresas da Fortune 500. Sua excelente rede mundial de Proxy inclui:

No geral, essa é uma das maiores e mais confiáveis infraestruturas de proxy orientadas para scraping do mercado. Fale com um de nossos representantes de vendas e veja qual dos produtos da Bright Data melhor atende às suas necessidades.