
Praktische Anwendung von XPath zur Erfassung der Daten des Königs von nebenan
Die alten Eisen in Crawler beschäftigt müssen dieses Szenario begegnet sein: natürlich Blick auf die Web-Seite Struktur ist sehr klar, wirklich wollen, um die Elemente zu lokalisieren, sondern wie in dem Labyrinth herum. Vor allem bei der Begegnung mit Tabellendaten, ProduktlistePeer-Elemente stapeln sichSituation ist das XPath-Verfahren zur Positionierung von Geschwistern Ihre Eröffnungshilfe.
Als Kastanie hat eine E-Commerce-Website Preise in derclass="price"in der Spanne, aber nebenan gibt es eine betörendeclass="fake-price". Dies ist der richtige Zeitpunkt, um diefolgende GeschwisterDie Achse wird in der Lage sein, den wahren Preis zu ermitteln, genau wie beim Pflücken einer Wassermelone auf dem Markt, man muss in der Lage sein, zu klatschen und den Klang zu hören.
//div[@class='product']/span[@class='title']/following-sibling::span[1]
Proxy-IPs halten Crawler auf Trab wie alte Hunde
Allerdings ist XPath nicht genug, viele Websites sind strenger als Anti-Diebe, um Crawler zu verhindern. Vor zwei Tagen, gibt es einen Preisvergleich Bruder, 20 aufeinanderfolgende Anfragen zu blockieren IP, ängstlich gerade Haare ziehen. Dies ist die Zeit zuDynamischer Wohnsitz-Proxy für ipipgoAuf dem Feld, seine IP-Pool ist größer als Wanda Plaza, jede Anfrage zufällig ändern Rüstung, kann die Website nicht zwischen einer Person und einem Crawler zu unterscheiden.
Die Live-Konfiguration ist denkbar einfach (denken Sie daran, Benutzername und Passwort durch Ihr eigenes Konto zu ersetzen):
Einfuhranträge
proxies = {
'http': 'http://username:password@gateway.ipipgo.com:9021',
'https': 'http://username:password@gateway.ipipgo.com:9021'
}
resp = requests.get('https://目标网站', proxies=proxies)
Gold Match Praktischer Koffer
Angenommen, wir möchten Informationen über eine Veranstaltung auf einer Ticket-Website abrufen, und die Seitenstruktur sieht wie folgt aus:
| Element einer Menge | diagnostische Eigenschaft |
|---|---|
| Name anzeigen | h3 tag + class="event-title" |
| Leistungszeit | Das erste p-Tag unmittelbar nach dem Namen |
| Tarife | Die Spanne im zweiten p-Tag |
Mit XPath können Geschwisterachsen wie folgt gegriffen werden:
events = response.xpath('//div[@class="events-list"]/div')
for event in events.
name = event.xpath('. //h3/text()').get()
time = event.xpath('. //h3/folgende-Geschwister::p[1]/text()').get()
preis = event.xpath('. //p[2]/span/text()').get()
Mit ipipgo'sPaket zur Abrechnung auf AbrufWenn Sie ein 5-Sekunden-Abfrageintervall einrichten, können Sie eine ganze Nacht lang ununterbrochen Daten übertragen, und die Wahrscheinlichkeit, in die 80%-Grube zu geraten, ist geringer als bei einem kostenlosen Proxy.
Gemeinsame Rollover-Szene QA
F: Was soll ich tun, wenn die XPath-Positionierung immer eine leere Liste ist?
A: Prüfen Sie zunächst, ob das Laden der Elemente verzögert wird. Verwenden Sie das Browser-Entwicklungstool, um die Positionierung zu reproduzieren. Wenn die Website Anti-Crawl verwendet, denken Sie daran, Referer und User-Agent im Request-Header hinzuzufügen, ipipgo's Proxy kommt mit einer Request-Header-Tarnfunktion.
F: Was sollte ich tun, wenn die Proxy-IP plötzlich keine Verbindung mehr herstellt?
A: Fügen Sie einen Wiederholungsmechanismus in den Code ein. Die API von ipipgo unterstützt das automatische Ersetzen von fehlgeschlagenen IPs. Wenn Sie häufig getrennt werden, empfehlen wir, zu ipipgo zu wechseln.Langfristige statische IP-Adresse für PrivatanwenderDie Stabilität ist vergleichbar mit der einer Breitband-Einwahlverbindung.
F: Wie kann man dynamische Webseiten unterbrechen?
A: Auf Selenium oder Playwright Simulation Browser, denken Sie daran, jede Browser-Instanz mit einem anderen Proxy zu geben. ipipgo unterstützt die Schaffung von mehreren Proxy-Sitzungen zur gleichen Zeit, eine perfekte Lösung für das Problem der IP-Konflikte in mehreren Fenstern.
Eine letzte Sache: Crawler.drei Teile Kompetenz, sieben Teile Agentur. Nachdem ich 7 oder 8 Proxy-Dienste verwendet habe, hat ipipgo wirklich etwas in Bezug auf die Reaktionsfähigkeit und den Mechanismus zur Wiederholung von Fehlern, insbesondere ihreIP Survival Detection APIEs kann dumme IPs im Voraus aussortieren und so verhindern, dass das Programm auf halbem Weg stecken bleibt.

