Come iniziare con Robots.txt e Sitemaps per il web scraping

Guide, 13-nov-20245 minuti di lettura

Nel vasto panorama digitale, dove innumerevoli siti web competono per attirare l'attenzione, è fondamentale comprendere le regole di ingaggio. Per gli sviluppatori web, i professionisti SEO e i creatori di contenuti, la decodifica di robots.txt è fondamentale per un web scraping etico ed efficace. Questa guida vi aiuterà a capire come interagire responsabilmente con i siti web utilizzando robots.txt e sitemaps.

Capire il ruolo di Robots.txt nel web crawling

Il crawling del Web è il cuore del modo in cui i motori di ricerca scoprono e indicizzano i contenuti su Internet. I siti web utilizzano i file robots.txt come strumento principale per gestire e controllare questo comportamento di crawling. Questi file sono una serie di istruzioni per i robot web, compresi i bot dei motori di ricerca, che li guidano su quali contenuti accedere o ignorare.

Lo scopo di robots.txt è duplice. Aiuta i proprietari dei siti a proteggere le informazioni sensibili e a ottimizzare le prestazioni dei server, fornendo al contempo un quadro di riferimento per il web scraping etico.

Capire il file Robots.txt 

Per illustrare il funzionamento di robots.txt, consideriamo l'esempio di questo sito web. Un tipico file robots.txt include direttive come User-agent, Disallow e Allow.

  • L'agente utente specifica quali bot devono seguire le regole. Ad esempio, "User-agent: *" si applica a tutti i bot.
  • Disallow impedisce ai bot di accedere ad aree specifiche, come le sezioni amministrative o le directory private.
  • Consente l'accesso a particolari risorse, assicurando che i file dinamici essenziali per le funzioni del sito siano raggiungibili.

In questo sito web, il robots.txt Il file appare come segue:

  • Come potete vedere questo sito web Disabilita l'accesso a questi percorsi URL:
    • /wp-content/uploads/wc-logs/
    • /wp-content/uploads/woocommerce_transient_files/
    • /wp-content/uploads/woocommerce_uploads/
    • /wp-admin/ (area di amministrazione di WordPress)
  • Consentire l'accesso specificamente a /wp-admin/admin-ajax.php, consentendo ai crawler di raggiungere questo file per le necessarie funzionalità AJAX.
  • Blocco Yoast SEO:
    • La linea Disallow: è vuoto, il che significa che questo blocco non aggiunge ulteriori restrizioni.
    • Sito web fornito: https://daystate.com/sitemap_index.xmlche aiuta i motori di ricerca a individuare tutti gli URL chiave per l'indicizzazione.

Che cos'è una Sitemap?

La sitemap è un componente fondamentale di un sito web, che elenca tutti i suoi URL importanti. Funge da tabella di marcia per i motori di ricerca, consentendo loro di scoprire e indicizzare rapidamente i contenuti nuovi o aggiornati.

Per i proprietari di siti, le sitemap sono preziose. Garantiscono che tutte le pagine rilevanti siano visibili ai motori di ricerca, facilitando un'indicizzazione e un posizionamento migliori. I vantaggi delle sitemap vanno oltre la SEO e favoriscono l'esperienza dell'utente, assicurando che i contenuti siano facilmente reperibili.

Il file robots. txt di https://daystate.com/robots.txt include un link alla sua sitemap, fornendo un percorso strutturato da seguire per i motori di ricerca. Questo link è essenziale per un crawling e un'indicizzazione efficienti dei contenuti del sito.

Ecco come appare la sitemap di Daystate:

Ad esempio, facciamo clic su"https://daystate.com/product-sitemap.xml".

Come si può notare, in questo scenario possiamo vedere tutti gli URL dei "Prodotti". Di seguito è riportato uno script Python progettato per eseguire lo scraping di ogni prodotto. Inizia analizzando la pagina XML dei prodotti per estrarre tutti gli URL dei prodotti, quindi itera ogni URL per estrarre il titolo e il prezzo del prodotto.

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

Perché entrambi i file sono importanti per il SEO e il Web Scraping

Insieme, i file robots.txt e le sitemap costituiscono la spina dorsale della SEO e delle pratiche etiche di web scraping. Robots.txt guida i web crawler verso le aree consentite, salvaguardando i dati sensibili e riducendo il carico del server. Nel frattempo, le sitemap favoriscono la scoperta dei contenuti da parte dei motori di ricerca, assicurando che le nuove pagine siano prontamente indicizzate.

Per i web scrapers, il rispetto di questi file è fondamentale. Ignorare le direttive robots.txt può portare a penalizzazioni, danneggiando sia la reputazione che le classifiche dei motori di ricerca. Gli scrapers etici seguono queste linee guida, promuovendo un ambiente digitale rispettoso.

Conclusione

Robots.txt I file e le sitemap sono strumenti indispensabili per il web crawling. Forniscono un approccio strutturato alla gestione dell'accesso al sito e all'indicizzazione, a vantaggio sia dei proprietari dei siti sia dei web scrapers.
Comprendendo e rispettando questi elementi, è possibile ottimizzare le strategie digitali, migliorare la SEO e adottare pratiche etiche di web scraping. Ricordate che un uso responsabile mantiene l'equilibrio dell'ecosistema web, garantendo un'esperienza positiva per tutte le parti interessate.