Primeiros passos com Robots.txt e Sitemaps para a Web Scraping

Guias, 13/11/20245 minutos de leitura

No vasto cenário digital, onde inúmeros sites competem por atenção, é fundamental entender as regras de engajamento. Para desenvolvedores da Web, profissionais de SEO e criadores de conteúdo, decodificar o robots.txt é fundamental para uma Web ética e eficaz scraping. Este guia o ajudará a entender como interagir de forma responsável com os sites usando robots.txt e sitemaps.

Entendendo a função do Robots.txt no rastreamento da Web

O rastreamento da Web está no centro de como os mecanismos de pesquisa descobrem e indexam o conteúdo na Internet. Os sites usam arquivos robots.txt como ferramenta principal para gerenciar e controlar esse comportamento de rastreamento. Esses arquivos servem como um conjunto de instruções para robôs da Web, inclusive bots de mecanismos de pesquisa, orientando-os sobre o conteúdo que devem acessar ou ignorar.

A finalidade do robots.txt é dupla. Ele ajuda os proprietários de sites a proteger informações confidenciais e otimizar o desempenho do servidor, além de fornecer uma estrutura para a ética na Web scraping.

Entendendo o Robots.txt 

Para ilustrar como o robots.txt funciona, vamos considerar o exemplo deste site. Um arquivo robots.txt típico inclui diretivas como User-agent, Disallow e Allow.

  • O User-agent especifica quais bots devem seguir as regras. Por exemplo, "User-agent: *" se aplica a todos os bots.
  • O Disallow impede que os bots acessem áreas específicas, como seções administrativas ou diretórios privados.
  • Permitir concede acesso a recursos específicos, garantindo que os arquivos dinâmicos essenciais para as funções do site possam ser acessados.

Neste site, o robots.txt aparece da seguinte forma:

  • Como você pode ver, este site Não permite o acesso para esses caminhos de URL:
    • /wp-content/uploads/wc-logs/
    • /wp-content/uploads/woocommerce_transient_files/
    • /wp-content/uploads/woocommerce_uploads/
    • /wp-admin/ (Área de administração do WordPress)
  • Permitir acesso especificamente para /wp-admin/admin-ajax.phppermitindo que os rastreadores acessem esse arquivo para a funcionalidade AJAX necessária.
  • Bloco Yoast SEO:
    • A linha Não permitir: está vazio, o que significa que nenhuma restrição adicional é adicionada por esse bloco.
    • Mapa do site fornecido: https://daystate.com/sitemap_index.xmlque ajuda os mecanismos de pesquisa a localizar todos os principais URLs para indexação.

O que é um Sitemap?

Um mapa do site é um componente crucial de um site, listando todos os URLs importantes. Ele funciona como um roteiro para os mecanismos de pesquisa, permitindo que eles descubram e indexem rapidamente conteúdo novo ou atualizado.

Para os proprietários de sites, os sitemaps são inestimáveis. Eles garantem que todas as páginas relevantes estejam visíveis para os mecanismos de pesquisa, facilitando uma melhor indexação e classificação. Os benefícios dos mapas de sites vão além do SEO, auxiliando na experiência do usuário ao garantir que o conteúdo seja facilmente detectável.

O arquivo https://daystate.com/robots.txt robots.txt inclui um link para o mapa do site, fornecendo um caminho estruturado para os mecanismos de pesquisa seguirem. Esse link é essencial para o rastreamento e a indexação eficientes do conteúdo do site.

Esta é a aparência do mapa do site do daystate:

Por exemplo, vamos clicar em"https://daystate.com/product-sitemap.xml"

Como você pode ver, podemos ver todos os URLs dos "Produtos" nesse cenário. Abaixo está um script Python projetado para scrape cada produto. Ele começa analisando a página XML de produtos para extrair todos os URLs de produtos e, em seguida, itera em cada URL para extrair o título e o preço do produto.

import re

import requests
from bs4 import BeautifulSoup


def fetch_xml_sitemap(sitemap_url) -> str:

    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
    }

    response = requests.get(sitemap_url, headers=headers)
    response.raise_for_status()  # Check for request errors

    return response.content


def extract_endpoints(response_content):
    output_endpoints = []

    soup = BeautifulSoup(response_content, "xml")
    # Loop through each product entry in the sitemap
    for url in soup.find_all("url"):
        # Extract link, last modified date, and image (if available)
        endpoint = url.find("loc").text if url.find("loc") else None
        if endpoint is not None:
            output_endpoints.append(endpoint)

    return output_endpoints

def extract_product_info(product_url):
    headers = {
        "User-Agent": "input_user_agent"}

    proxy = {
        "http": "http://username:[email protected]:6060",
        "https": "http://username:[email protected]:6060"
    }

    response = requests.get(product_url, headers=headers, proxies=proxy)

    soup = BeautifulSoup(response.content, "html.parser")

    pattern = re.compile(r"^product-\d+$")
    try:
        product_div = soup.find("div", id=pattern)
        product_title = product_div.find("h1", {"class":"product_title entry-title"}).text
        product_price = product_div.find("bdi").text
        return product_title, product_price
    except:
        print("Error Extracting Product Information")
        return None, None

if __name__ == '__main__':
    url_sitemap = "https://daystate.com/product-sitemap.xml"

    sitemap_xml = fetch_xml_sitemap(url_sitemap)

    sitemap_urls = extract_endpoints(sitemap_xml)

    for url in sitemap_urls:
        print(extract_product_info(url))

Por que ambos os arquivos são importantes para SEO e Web Scraping

Juntos, os arquivos robots.txt e os mapas de sites formam a espinha dorsal do SEO e das práticas éticas da Web scraping . Robots.txt orienta os rastreadores da Web em áreas permitidas, protegendo dados confidenciais e reduzindo a carga do servidor. Enquanto isso, os sitemaps aumentam a descoberta de conteúdo pelos mecanismos de pesquisa, garantindo que novas páginas sejam indexadas imediatamente.

Para os raspadores da Web, respeitar esses arquivos é fundamental. Ignorar as diretivas do robots.txt pode resultar em penalidades, prejudicando a reputação e as classificações nos mecanismos de pesquisa. Os scrapers éticos seguem essas diretrizes, promovendo um ambiente digital respeitoso.

Conclusão

Robots.txt e sitemaps são ferramentas indispensáveis no rastreamento da Web. Eles oferecem uma abordagem estruturada para gerenciar o acesso e a indexação de sites, beneficiando tanto os proprietários de sites quanto os raspadores da Web.
Ao compreender e respeitar esses elementos, você pode otimizar suas estratégias digitais, aprimorar o SEO e participar de práticas éticas na Web scraping . Lembre-se, o uso responsável mantém o equilíbrio do ecossistema da Web, garantindo uma experiência positiva para todas as partes interessadas.