Erste Schritte mit Robots.txt und Sitemaps für Web Scraping

Leitfäden, 13. November 20245 Min. gelesen

In der riesigen digitalen Landschaft, in der zahllose Websites um Aufmerksamkeit konkurrieren, ist es entscheidend, die Spielregeln zu verstehen. Für Webentwickler, SEO-Experten und Content-Ersteller ist die Entschlüsselung von robots.txt der Schlüssel zu ethischem und effektivem Web Scraping. In diesem Leitfaden erfahren Sie, wie Sie mithilfe von robots.txt und Sitemaps verantwortungsvoll mit Websites interagieren können.

Die Rolle von Robots.txt beim Web Crawling verstehen

Das Crawling von Webseiten ist das Herzstück, wenn es darum geht, wie Suchmaschinen Inhalte im Internet entdecken und indizieren. Websites verwenden robots.txt-Dateien als Hauptinstrument zur Verwaltung und Kontrolle dieses Crawling-Verhaltens. Diese Dateien dienen als Anleitungen für Webroboter, einschließlich Suchmaschinen-Bots, die ihnen vorgeben, auf welche Inhalte sie zugreifen oder sie ignorieren sollen.

Der Zweck von robots.txt ist ein doppelter. Sie hilft Website-Besitzern, sensible Informationen zu schützen und die Serverleistung zu optimieren, und bietet gleichzeitig einen Rahmen für ethisches Web Scraping.

Robots.txt verstehen 

Um die Funktionsweise von robots.txt zu veranschaulichen, betrachten wir das Beispiel dieser Website. Eine typische robots.txt-Datei enthält Direktiven wie User-agent, Disallow und Allow.

  • Der Benutzer-Agent gibt an, welche Bots die Regeln befolgen sollen. Zum Beispiel: "User-agent: *" gilt für alle Bots.
  • Disallow verhindert, dass Bots auf bestimmte Bereiche zugreifen können, z. B. auf administrative Bereiche oder private Verzeichnisse.
  • Erlaubt den Zugriff auf bestimmte Ressourcen und stellt sicher, dass dynamische Dateien, die für die Funktionen der Website wichtig sind, erreichbar sind.

Auf dieser Website wird die robots.txt Datei erscheint wie folgt:

  • Wie Sie sehen können, ist diese Website Verweigert den Zugang zu diesen URL-Pfaden:
    • /wp-content/uploads/wc-logs/
    • /wp-content/uploads/woocommerce_transient_files/
    • /wp-content/uploads/woocommerce_uploads/
    • /wp-admin/ (WordPress-Administrationsbereich)
  • Zugriff zulassen speziell für /wp-admin/admin-ajax.phpso dass Crawler diese Datei für die erforderlichen AJAX-Funktionen erreichen können.
  • Yoast SEO Block:
    • Die Linie Nicht zulassen: ist leer, d. h. es werden keine zusätzlichen Einschränkungen durch diesen Block hinzugefügt.
    • Sitemap bereitgestellt: https://daystate.com/sitemap_index.xmldie den Suchmaschinen hilft, alle wichtigen URLs für die Indizierung zu finden.

Was ist eine Sitemap?

Eine Sitemap ist ein wichtiger Bestandteil einer Website, in der alle wichtigen URLs aufgeführt sind. Sie dient als Wegweiser für Suchmaschinen, damit diese neue oder aktualisierte Inhalte schnell finden und indexieren können.

Für Website-Besitzer sind Sitemaps von unschätzbarem Wert. Sie stellen sicher, dass alle relevanten Seiten für Suchmaschinen sichtbar sind, was eine bessere Indizierung und Platzierung ermöglicht. Die Vorteile von Sitemaps gehen über SEO hinaus, da sie die Benutzerfreundlichkeit erhöhen, indem sie sicherstellen, dass die Inhalte leicht auffindbar sind.

Die robots. txt-Datei https://daystate.com/robots.txt enthält einen Link zu ihrer Sitemap, die einen strukturierten Pfad enthält, dem die Suchmaschinen folgen können. Dieser Link ist für ein effizientes Crawlen und Indizieren des Inhalts der Website unerlässlich.

So sieht die Sitemap von daystate aus:

Klicken wir zum Beispiel auf"https://daystate.com/product-sitemap.xml".

Wie Sie sehen können, können wir alle URLs für die "Produkte" in diesem Szenario sehen. Nachfolgend finden Sie ein Python-Skript, mit dem Sie jedes Produkt abrufen können. Es beginnt mit dem Parsen der XML-Seite der Produkte, um alle Produkt-URLs zu extrahieren, und iteriert dann durch jede URL, um den Produkttitel und den Preis zu extrahieren.

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

Warum beide Dateien für SEO und Web Scraping wichtig sind

Zusammen bilden robots.txt-Dateien und Sitemaps das Rückgrat von SEO und ethischen Web-Scraping-Praktiken. Robots.txt lenkt Web-Crawler auf zulässige Bereiche, schützt sensible Daten und verringert die Serverlast. Gleichzeitig verbessern Sitemaps die Erkennung von Inhalten durch Suchmaschinen und stellen sicher, dass neue Seiten sofort indexiert werden.

Für Web-Scraper ist die Einhaltung dieser Dateien von größter Bedeutung. Die Nichtbeachtung der robots.txt-Richtlinien kann zu Strafen führen und sowohl den Ruf als auch die Platzierung in Suchmaschinen beeinträchtigen. Ethische Scraper befolgen diese Richtlinien und fördern ein respektvolles digitales Umfeld.

Schlussfolgerung

Robots.txt Dateien und Sitemaps sind unverzichtbare Hilfsmittel beim Crawling von Websites. Sie bieten einen strukturierten Ansatz für die Verwaltung des Website-Zugriffs und die Indexierung, wovon sowohl Website-Besitzer als auch Web-Scraper profitieren.
Wenn Sie diese Elemente verstehen und respektieren, können Sie Ihre digitalen Strategien optimieren, die Suchmaschinenoptimierung verbessern und ethische Web Scraping-Praktiken anwenden. Denken Sie daran, dass eine verantwortungsvolle Nutzung das Gleichgewicht des Web-Ökosystems aufrechterhält und eine positive Erfahrung für alle Beteiligten gewährleistet.