Commencer avec Robots.txt et Sitemaps pour le Web Scraping

Guides, 13 novembre 20245 minutes de lecture

Dans le vaste paysage numérique, où d'innombrables sites web rivalisent pour attirer l'attention, il est essentiel de comprendre les règles d'engagement. Pour les développeurs web, les professionnels du référencement et les créateurs de contenu, le décodage de robots.txt est la clé d'un web scraping éthique et efficace. Ce guide vous aidera à comprendre comment interagir de manière responsable avec les sites web à l'aide de robots.txt et de sitemaps.

Comprendre le rôle de Robots.txt dans l'exploration du Web

L'exploration du web est au cœur de la manière dont les moteurs de recherche découvrent et indexent le contenu de l'internet. Les sites web utilisent les fichiers robots.txt comme outil principal pour gérer et contrôler ce comportement d'exploration. Ces fichiers constituent un ensemble d'instructions pour les robots web, y compris les robots des moteurs de recherche, les guidant sur le contenu auquel ils doivent accéder ou qu'ils doivent ignorer.

L'objectif du fichier robots.txt est double. Il aide les propriétaires de sites à protéger les informations sensibles et à optimiser les performances du serveur, tout en fournissant un cadre pour le web scraping éthique.

Comprendre Robots.txt 

Pour illustrer le fonctionnement de robots.txt, prenons l'exemple de ce site web. Un fichier robots.txt typique comprend des directives telles que User-agent, Disallow et Allow.

  • Le User-agent précise quels robots doivent suivre les règles. Par exemple, "User-agent : *" s'applique à tous les robots.
  • Disallow empêche les robots d'accéder à des zones spécifiques, telles que les sections administratives ou les répertoires privés.
  • L'autorisation permet d'accéder à des ressources particulières, ce qui garantit que les fichiers dynamiques essentiels aux fonctions du site sont accessibles.

Sur ce site, le robots.txt apparaît comme suit :

  • Comme vous pouvez le constater, ce site web Interdit l'accès à ces chemins d'accès URL :
    • /wp-content/uploads/wc-logs/
    • /wp-content/uploads/woocommerce_transient_files/
    • /wp-content/uploads/woocommerce_uploads/
    • /wp-admin/ (zone d'administration de WordPress)
  • Autoriser l'accès spécifiquement à /wp-admin/admin-ajax.phpce qui permet aux robots d'indexation d'accéder à ce fichier pour les fonctionnalités AJAX nécessaires.
  • Bloc Yoast SEO :
    • La ligne Refuser : est vide, ce qui signifie qu'aucune restriction supplémentaire n'est ajoutée par ce bloc.
    • Plan du site fourni : https://daystate.com/sitemap_index.xmlqui aide les moteurs de recherche à localiser toutes les URL clés pour l'indexation.

Qu'est-ce qu'un plan du site ?

Un plan du site est un élément essentiel d'un site web, qui répertorie toutes les URL importantes. Il sert de feuille de route aux moteurs de recherche, leur permettant de découvrir et d'indexer rapidement les contenus nouveaux ou mis à jour.

Pour les propriétaires de sites, les sitemaps sont d'une valeur inestimable. Ils garantissent que toutes les pages pertinentes sont visibles par les moteurs de recherche, ce qui facilite l'indexation et le classement. Les avantages des sitemaps vont au-delà du référencement, car ils contribuent à l'expérience de l'utilisateur en garantissant que le contenu est facilement accessible.

https://daystate.com/robots.txt Le fichier robots. txt comprend un lien vers son plan du site (sitemap), qui fournit aux moteurs de recherche un chemin structuré à suivre. Ce lien est essentiel pour une exploration et une indexation efficaces du contenu du site.

Voici à quoi ressemble le plan du site de l'État du jour :

Par exemple, cliquons sur"https://daystate.com/product-sitemap.xml"

Comme vous pouvez le constater, nous pouvons voir toutes les URL des "produits" dans ce scénario. Vous trouverez ci-dessous un script Python conçu pour extraire chaque produit. Il commence par analyser la page XML des produits pour en extraire toutes les URL, puis il parcourt chaque URL pour en extraire le titre et le prix.

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))

Pourquoi les deux fichiers sont importants pour le référencement et le scraping web

Ensemble, les fichiers robots.txt et les sitemaps constituent l'épine dorsale du référencement et des pratiques éthiques de web scraping. Robots.txt guide les robots d'exploration du web sur les zones autorisées, protégeant ainsi les données sensibles et réduisant la charge du serveur. Par ailleurs, les sitemaps favorisent la découverte du contenu par les moteurs de recherche, en garantissant l'indexation rapide des nouvelles pages.

Le respect de ces fichiers est d'une importance capitale pour les auteurs de scripts sur le web. Ignorer les directives robots.txt peut conduire à des sanctions, nuisant à la fois à la réputation et au classement dans les moteurs de recherche. Les scrapers éthiques respectent ces directives, favorisant ainsi un environnement numérique respectueux.

Conclusion

Robots.txt et les sitemaps sont des outils indispensables pour l'exploration du web. Ils fournissent une approche structurée de la gestion de l'accès au site et de l'indexation, ce qui profite à la fois aux propriétaires de sites et aux robots d'indexation.
En comprenant et en respectant ces éléments, vous pouvez optimiser vos stratégies numériques, améliorer le référencement et vous engager dans des pratiques de web scraping éthiques. N'oubliez pas qu'une utilisation responsable maintient l'équilibre de l'écosystème du web, garantissant une expérience positive pour toutes les parties prenantes.