Die meisten Anfänger im Parsing beginnen mit einem vollständigen Crawlen der Website: Sie gehen auf die Hauptseite, sammeln alle Links, klicken auf jeden einzelnen, sammeln erneut Links - und das tausendmal. Das frisst Proxys, Zeit und endet oft mit einem Bann. Es gibt einen einfacheren und günstigeren Weg: Fast jede große Website, einschließlich Wildberries, Ozon und Avito, hat bereits eine fertige Karte aller Seiten - sitemap.xml. Lassen Sie uns herausfinden, wie man sie findet, liest und anstelle von tausenden überflüssigen Anfragen verwendet.
Was ist sitemap.xml und warum ist es für Parser wichtig
Sitemap.xml ist eine Datei, die die Website selbst für Suchmaschinen wie Google und Yandex erstellt. Darin sind alle Seiten aufgelistet, die der Website-Besitzer indizieren lassen möchte: Produktkarten, Kategorien, Blogartikel. Im Grunde genommen ist es eine fertige Liste von URLs, die die Website Ihnen selbst zur Verfügung stellt - Sie müssen nicht manuell auf Links klicken, durch Paginierung navigieren oder die Logik der Navigation entschlüsseln.
Für Verkäufer, die die Preise von Wettbewerbern auf Wildberries oder Ozon überwachen, bedeutet dies eines: Anstatt tausende Kategorien und Seiten durchzugehen, kann man sofort eine Liste aller Produktkarten mit einer Anfrage an die Sitemap erhalten. Für Marketer, die eine URL-Datenbank zur Analyse von Wettbewerbsinhalten sammeln, spart das Stunden an manueller Arbeit. Für Arbitrageure, die die Landingpages von Wettbewerbern zur Analyse von Kreativen parsen, zeigt die Sitemap alle Seiten der Website auf einmal.
Ein wichtiger Punkt: Nicht alle Seiten werden in die Sitemap aufgenommen. Manchmal werden Seiten mit Filtern, zeitlich begrenzte Aktionen oder Seiten mit Parametern in der URL ausgeschlossen. Daher ist die Sitemap nicht immer eine 100%ige Abdeckung der Website, aber normalerweise enthält sie 80-95% der nützlichen Seiten, die Sie für das Katalog oder die Überwachung benötigen.
Vollständiger Crawl vs. sitemap-first: Kostenvergleich
Der Unterschied in den Ansätzen ist spürbar, wenn man nicht in abstrakten "Versuchen", sondern in realen Ressourcen rechnet: der Anzahl der Anfragen, dem Verbrauch von Proxy-Traffic und der Zeit bis zum Ergebnis. Unten ist ein Vergleich am Beispiel des Sammelns eines Katalogs aus 50.000 Produktkarten.
| Parameter | Vollständiger Crawl der Website | Parsing über die Sitemap |
|---|---|---|
| Anfragen zum Sammeln von URLs | 15.000–20.000 (Kategorien, Paginierung, Filter) | 50–300 (nur Sitemap-Dateien) |
| Zeit zum Sammeln der URL-Liste | 4–8 Stunden | 15–30 Minuten |
| Risiko der IP-Sperrung | Hoch aufgrund des Anfragemengen zur Navigation | Niedrig, Anfragen sind um ein Vielfaches geringer |
| Belastung des Proxy-Traffics | Hoch, ein großer Pool von IPs ist erforderlich | Minimal, man kann mit einem kleinen Pool auskommen |
| Komplexität der Parser-Logik | Hoch, Navigation muss analysiert werden | Niedrig, Analyse der XML-Struktur |
Die Zahl "10-mal günstiger" aus dem Titel ist keine Übertreibung. Wenn ein vollständiger Crawl 15-20 Tausend Anfragen nur für die Erstellung der Seitenliste erfordert, und die Sitemap dieselbe Liste mit 50-300 Anfragen liefert, ergibt sich eine erhebliche Einsparung beim Proxy-Traffic und der Zeit. Dabei müssen Sie die Produktkarten trotzdem separat herunterladen - aber Sie wissen genau, welche URLs Sie herunterladen müssen, und verschwenden keine Ressourcen für leere Seiten, Duplikate und Spam-Links.
Wie man sitemap.xml auf jeder Website findet
Der erste und einfachste Weg ist, /sitemap.xml an die Domain der Website anzuhängen. Zum Beispiel, um es zu überprüfen, versuchen Sie, die Adresse https://example.com/sitemap.xml im Browser zu öffnen. Dies funktioniert für die meisten Websites, einschließlich vieler Online-Shops auf beliebten CMS.
Wenn unter dieser Adresse nichts zu finden ist, überprüfen Sie die Datei robots.txt - sie befindet sich fast immer unter /robots.txt und enthält in den meisten Fällen die Zeile Sitemap: https://example.com/sitemap_index.xml. Dies ist der offizielle Weg, wie Websites Suchmaschinen mitteilen, wo sie die Karte finden können. Bei großen Marktplätzen wie Wildberries und Ozon sind die Sitemaps oft in Dutzende von Dateien unterteilt und werden genau über robots.txt angegeben.
Eine dritte Möglichkeit ist, nach Erwähnungen in Systemen wie Google Search Console zu suchen (wenn Sie Zugriff auf Ihre Website haben) oder spezialisierte Website-Scanner zu verwenden, die alle Sitemap-Dateien selbst finden. Für fremde Websites von Wettbewerbern sind in der Regel die ersten beiden Methoden ausreichend - robots.txt wird fast nie vor fremden Augen verborgen, es ist eine öffentliche Datei.
Tipp:
Die Namen der Sitemap-Dateien sind nicht immer standardisiert. Es gibt Varianten wie sitemap_index.xml, sitemap-products.xml, product-sitemap.xml und ähnliche. Beginnen Sie immer mit robots.txt - es wird Ihnen die genauen Pfade anzeigen.
Struktur der Sitemap bei Marktplätzen: Index und verschachtelte Karten
Bei kleinen Websites gibt es normalerweise eine einzige sitemap.xml-Datei mit allen URLs. Aber bei großen Katalogen wie Wildberries, Ozon oder Avito gibt es Millionen von Seiten, und eine XML-Datei mit diesem Volumen wäre unpraktisch. Daher verwenden sie das sogenannte Sitemap-Index - eine Inhaltsdatei, die auf Dutzende oder Hunderte separater Sitemap-Dateien verweist, die nach Kategorien, Daten oder einfach in Bündeln von 10-50 Tausend URLs unterteilt sind.
Die Struktur sieht ungefähr so aus: Zuerst öffnen Sie die Hauptindexdatei, in der Sie eine Liste von Links zu den untergeordneten Sitemaps finden, z.B. sitemap-products-1.xml, sitemap-products-2.xml und so weiter. Dann müssen Sie jede dieser Dateien herunterladen und aus ihnen die endgültigen URLs der Produktkarten extrahieren. Dies ist ein zweistufiger Prozess, aber er ist immer noch um ein Vielfaches schneller als das manuelle Durchklicken der Website-Navigation.
Manchmal sind die untergeordneten Sitemap-Dateien im gzip-Format komprimiert (Erweiterung .xml.gz) - dies ist eine gängige Praxis zur Einsparung von Speicherplatz auf dem Server. Wenn das Skript eine Datei herunterlädt und unlesbare Zeichen anstelle von XML sieht, muss der Inhalt wahrscheinlich zuerst dekomprimiert werden, bevor er geparst wird.
Schritt-für-Schritt-Extraktion von URLs aus der Sitemap
Für diejenigen, die mit fertigen No-Code-Parsing-Tools arbeiten, können die meisten modernen Katalogparser von Marktplätzen bereits automatisch Sitemaps lesen - es reicht aus, die Stamm-URL der Website anzugeben, und das Tool findet selbst robots.txt, findet den Sitemap-Index und sammelt die Liste aller Karten. Aber wenn Sie mit einem Entwickler arbeiten oder ein kleines Skript selbst schreiben, ist die Logik einfach, und hier ist ein Beispiel in Python:
import requests
import gzip
from io import BytesIO
from lxml import etree
def get_sitemap_urls(sitemap_url, proxies=None):
response = requests.get(sitemap_url, proxies=proxies, timeout=15)
content = response.content
# Gzip-Dekomprimierung, falls die Datei komprimiert ist
if sitemap_url.endswith('.gz'):
content = gzip.decompress(content)
root = etree.fromstring(content)
namespace = {'ns': 'http://www.sitemaps.org/schemas/sitemap/0.9'}
# Wenn es sich um einen Sitemap-Index handelt - Links zu untergeordneten Karten sammeln
sub_sitemaps = root.findall('.//ns:sitemap/ns:loc', namespace)
if sub_sitemaps:
all_urls = []
for sub in sub_sitemaps:
all_urls.extend(get_sitemap_urls(sub.text, proxies))
return all_urls
# Wenn es sich um eine normale Sitemap handelt - endgültige URLs sammeln
urls = root.findall('.//ns:url/ns:loc', namespace)
return [url.text for url in urls]
proxy = {
"http": "http://user:pass@proxy_host:port",
"https": "http://user:pass@proxy_host:port"
}
urls = get_sitemap_urls("https://example.com/sitemap_index.xml", proxies=proxy)
print(f"Gefundene URLs: {len(urls)}")
Dieses Skript durchläuft rekursiv die Indexdatei, lädt jede untergeordnete Karte herunter und sammelt alle endgültigen Links in einer Liste. Am Ende erhalten Sie eine vollständige Liste der URLs der Produktkarten, ohne einen einzigen überflüssigen Klick in der Website-Navigation.
Filtern der benötigten Seiten nach URL-Vorlagen
Nachdem Sie die vollständige Liste der URLs aus der Sitemap erhalten haben, müssen Sie sie fast immer filtern. In einer Sitemap-Datei eines Marktplatzes können Produktkarten, Kategorieseiten, Blogartikel, Marken-Seiten und Dienstseiten nebeneinander existieren. Wahrscheinlich benötigen Sie nur die Produktkarten einer bestimmten Kategorie.
Zum Filtern werden normalerweise URL-Vorlagen verwendet. Wenn beispielsweise die Produktkarten auf der Website wie /catalog/product/12345 aussehen und die Kategorien wie /catalog/category/electronics, ist es nicht schwer, das eine vom anderen durch einfaches Vergleichen der Pfadsegmente zu trennen. Für komplexere Fälle, in denen die URL-Struktur nicht so offensichtlich ist, werden reguläre Ausdrücke verwendet - sie ermöglichen es, ein Muster einmal festzulegen und sofort Hunderttausende von Links zu filtern.
Zusätzlich ist es nützlich, auf die <lastmod>-Tags innerhalb der Sitemap zu achten - sie zeigen das Datum der letzten Änderung der Seite an. Wenn Sie nicht das gesamte Katalog, sondern nur die aktualisierten Produkte der letzten Woche benötigen (zum Beispiel zur Überwachung neuer Positionen von Wettbewerbern), können Sie die URLs genau nach diesem Datum filtern und Seiten, die sich seit Monaten nicht geändert haben, ignorieren.
Proxy-Einstellungen für das massenhafte Herunterladen von Sitemaps
Obwohl die Anfragen an die Sitemap um ein Vielfaches geringer sind als bei einem vollständigen Crawl, überwachen Websites wie Wildberries und Ozon dennoch verdächtige Aktivitäten - zu häufige Anfragen von einer IP, untypische User-Agents, fehlende Browser-Header. Daher ist es auch für das Herunterladen von Sitemap-Dateien ratsam, Proxys zu verwenden, insbesondere wenn Sie eine regelmäßige Überwachung planen und nicht nur einen einmaligen Katalog sammeln möchten.
Für das Herunterladen der XML-Dateien der Sitemaps sind in der Regel Datacenter-Proxys ausreichend - sie sind schnell und kostengünstig, und da es nur wenige Anfragen an die Sitemap gibt, wenden Websites seltener strenge Schutzmaßnahmen an als bei normalen Katalogseiten. Bei der anschließenden Herunterladung der Produktkarten über die gesammelten URLs, wo die Anfragen um ein Vielfaches höher sind und der Schutz strenger ist, sollten Sie auf residential Proxys umsteigen - sie verwenden echte IPs von normalen Benutzern und werden seltener von Anti-Bot-Systemen der Marktplätze blockiert.
Wenn Sie den Katalog von mobilen Versionen der Website oder einer API überwachen, die Daten nur bei mobilem Traffic bereitstellt, sollten Sie mobile Proxys in Betracht ziehen - sie verwenden IPs von Mobilfunkanbietern und gelten als am vertrauenswürdigsten bei den meisten Anti-Fraud-Systemen.
Die praktische Einstellung im Skript oder Parser ist einfach: Geben Sie Host, Port, Benutzername und Passwort des Proxys in den entsprechenden Feldern der Anfrage an (wie im obigen Codebeispiel im Parameter proxies gezeigt), oder wenn Sie einen fertigen No-Code-Parser oder einen Anti-Detect-Browser wie Dolphin Anty oder AdsPower zur manuellen Überprüfung der Struktur der Website vor der Einrichtung der automatischen Sammlung verwenden, fügen Sie die Proxy-Daten in den Profileinstellungen ein: Öffnen Sie den Tab "Proxy" → Wählen Sie den Typ HTTP oder SOCKS5 → Fügen Sie Host, Port, Benutzername, Passwort ein → Speichern Sie das Profil.
Häufige Fehler bei der Arbeit mit Sitemaps
Der erste und häufigste Fehler ist, robots.txt zu ignorieren und zu versuchen, die Adresse der Sitemap willkürlich zu erraten. Das ist Zeitverschwendung, die leicht vermieden werden kann, indem man einfach in die Datei mit den Indexierungsregeln schaut.
Der zweite Fehler ist, nicht zu berücksichtigen, dass die Sitemap unvollständig sein kann. Einige Websites schließen absichtlich Seiten mit geringem SEO-Wert aus der Sitemap aus, die jedoch dennoch wichtig für die Preisüberwachung sind - zum Beispiel Seiten von nicht verfügbaren Produkten. Wenn nach dem Parsen über die Sitemap die Anzahl der gesammelten Karten deutlich geringer ist als erwartet, sollten Sie die Anzahl der Produkte überprüfen, die die Website in der Kategorie anzeigt, und gegebenenfalls die Sammlung durch gezieltes Crawlen der fehlenden Abschnitte ergänzen.
Der dritte Fehler ist, bereits heruntergeladene Sitemap-Dateien nicht zu cachen. Wenn Sie die Überwachung täglich starten, macht es keinen Sinn, jedes Mal die Indexdatei und alle untergeordneten Karten neu herunterzuladen - die meisten von ihnen ändern sich nicht jeden Tag. Speichern Sie die Liste der URLs lokal und aktualisieren Sie nur das, was sich tatsächlich nach dem Datum lastmod geändert hat.
Der vierte Fehler ist, die Anfrage-Header zu vergessen. Selbst das Herunterladen einer einfachen XML-Datei kann blockiert werden, wenn die Anfrage wie von einem Bot aussieht: ohne User-Agent, ohne Accept-Language, mit untypischen Standard-Headern, die die Anfragebibliothek setzt. Das Hinzufügen realistischer Browser-Header in Kombination mit Proxys verringert erheblich die Wahrscheinlichkeit einer Blockierung in diesem Schritt.
Checkliste für den Start des Parsings über die Sitemap
Bevor Sie mit dem vollständigen Sammeln des Katalogs beginnen, gehen Sie eine kurze Liste von Schritten durch, um keine Zeit mit Fehlern zu verlieren:
- Haben Sie die robots.txt der Website überprüft und die genaue Adresse der Sitemap oder des Sitemap-Index gefunden
- Haben Sie sichergestellt, dass die Struktur der Sitemap zweistufig (Index + untergeordnete Karten) oder einstufig ist
- Haben Sie überprüft, ob die untergeordneten Dateien nicht im gzip-Format komprimiert sind
- Haben Sie das URL-Muster für die benötigten Seiten (Produktkarten, Kategorien usw.) festgelegt
- Haben Sie die Filterung nach Muster oder nach dem Datum lastmod eingerichtet, wenn nur frische Positionen benötigt werden
- Haben Sie Proxys für das Herunterladen von Sitemap-Dateien und separat für das Herunterladen der Produktkarten eingerichtet
- Haben Sie realistische Anfrage-Header hinzugefügt (User-Agent, Accept-Language)
- Haben Sie Caching und Datumsvergleiche für wiederholte Überwachungsstarts eingerichtet
- Haben Sie die endgültige Anzahl der URLs mit der ungefähren Anzahl der Produkte auf der Website verglichen
Fazit
Der Sitemap-first-Ansatz ist kein Hack und kein Umgehen des Schutzes, sondern die Nutzung der Informationen, die die Website selbst für Suchmaschinen veröffentlicht. Anstatt tausende Anfragen an die Navigation, Kategorien und Paginierung zu stellen, erhalten Sie eine fertige Liste der benötigten Seiten mit nur wenigen Dutzend Anfragen an XML-Dateien. Dies spart Zeit beim Start des Parsings, reduziert den Verbrauch von Proxy-Traffic und verringert erheblich das Risiko einer IP-Blockierung, da die Belastung der Website um ein Vielfaches geringer ist als bei einem vollständigen Crawl.
Wenn Sie gerade erst mit der Überwachung des Katalogs von Wildberries, Ozon oder einer anderen großen Website beginnen, fangen Sie mit der Sitemap an - wahrscheinlich sparen Sie bereits beim ersten Start Stunden an Arbeit. Für das Herunterladen der Sitemap-Dateien genügen kostengünstige Datacenter-Proxys, und für die anschließende regelmäßige Datensammlung zu den Produktkarten, bei der das Risiko einer Blockierung höher ist, sollten Sie sich die residential Proxys ansehen - sie gewährleisten einen stabilen Betrieb des Parsers ohne häufige Banns auf lange Sicht.