
Wie funktioniert die Funktion contains() von XPath wirklich?
Brüder, die sich mit der Datenerfassung beschäftigen, sollten wissen, dass die Positionierung von Webseitenelementen wie eine Nadel im Heuhaufen ist. Zu diesem Zeitpunkt XPath enthält () Funktion ist Ihr Magnet, vor allem, wenn das Element Merkmale sind nicht offensichtlich. Zum Beispiel, um eine Seite mit all den "Preis" des Wortes div-Tag, direkt als geschrieben zu finden//div[enthält(text(),'Preis')]viel flexibler als der Abgleich mit dem Volltext.
//[contains(@class,'btn_submit')] //findet Elemente, die den Stil der Schaltfläche "submit" enthalten
//a[contains(@href,'product_detail')] //findet den Link zur Produktdetail-Seite
Wie arbeiten Proxy-IPs und XPath zusammen?
Viele Websites Anti-Climbing-Mechanismus Diebe fein, die gleiche IP häufige Besuche direkt auf Ihre schwarz. Zu dieser Zeit haben wir zuDynamischer Wohnsitz-Proxy für ipipgoDer IP-Pool wird täglich mit mehr als 8000 Knoten aktualisiert. Angenommen, Sie möchten Preisdaten von einer E-Commerce-Website sammeln:
importiere Anfragen
von lxml importieren etree
proxies = {
'http': 'http://user:pass@gateway.ipipgo.com:9021'
}
resp = requests.get('https://xxx.com', proxies=proxies)
html = etree.HTML(resp.text)
preise = html.xpath('//span[enthält(@class, "preis")]')
Praktischer Leitfaden zur Vermeidung der Grube
Ich bin auf diesen Fallstrick gestoßen: Eine Website, die den Preis in derDaten-PreisIn den Eigenschaften lautet der Oberflächentext "¥??". im Attribut zeigt der Oberflächentext "¥? An dieser Stelle wäre die einfache Verwendung von text() zum Auffinden des Textes ein Reinfall, und Sie müssten ihn auf diese Weise schreiben:
//div[@id='goods']/@data-price // Attributwerte direkt extrahieren
Mit ipipgo'sIntelligente RotationsstrategieDas Unternehmen hat einen automatischen IP-Wechsel alle 5 Minuten eingerichtet, und die Erfolgsquote bei der Erfassung ist direkt von 50% auf 95% angestiegen.
Ich bin sicher, dass Sie sich darüber wundern.
F: Wird bei contains() zwischen Groß- und Kleinschreibung unterschieden?
A: Punkte! Um "PRICE" zu finden, müssen Sie 'PRICE' schreiben. Wir empfehlen, die Funktion translate() zu verwenden, um in Kleinbuchstaben umzuwandeln!
F: Wie kann ich dynamisch geladene Inhalte unterbrechen?
A: Verwenden Sie zuerst ipipgo'sHochversteckte AgentenUmgehen Sie den Backcrawl, und warten Sie mit einem Tool wie Selenium, bis das Element fertig geladen ist, bevor Sie es abrufen
F: Überlebt ipipgo lange genug?
A: Der eigentliche Test ihrer einzelnen IP kann für 10-30 Minuten verwendet werden, tun regelmäßige Sammlung ist völlig ausreichend. Wenn es sich um eine langfristige Aufgabe handelt, ist es empfehlenswert, API zu öffnen, um neue IP automatisch zu extrahieren.
Warum ipipgo?
Nach dem Vergleich mehrerer Proxy-Anbieter hat ipipgo drei entscheidende Vorteile:
| Funktionalität | Generalvertreter | ipipgo |
|---|---|---|
| IP-Typ | IP-basierter Serverraum | Real Residential IP |
| Gleichzeitigkeit | 50 Fäden | grenzenlos |
| geografischer Standort | Feste Städte | Standort der Basisstation nach Bedarf auswählen |
Letzte Woche habe ich einem Kunden geholfen, einen Vergleich zu erstellen, und habe dieShanghai Lokale IPDer Zugang zum Zielort ist tatsächlich dreimal schneller als bei gewöhnlichen Agenten. Später erfuhr ich, dass sie direkte Verbindungskanäle mit den drei großen Fluggesellschaften haben, und diese Welle ist wirklich professionell.
Die ultimative Kombi
Zum Schluss möchte ich Ihnen einen privaten Konfigurationsplan vorstellen:
- Erstellt in der ipipgo-KonsoleDauersitzungin einer verantwortungsvollen Position für jemanden handeln
- XPath wird geschrieben als
//[enthält(@id,'result_')]Passende dynamische ID - 3-malige Wiederholung des Einrichtungsfehlers + automatische IP-Umschaltung
Mit dieser Kombination wurden täglich durchschnittlich 100.000 Daten gesammelt, ohne dass es zu Störungen kam. Vor allem für diejenigen, die grenzüberschreitenden E-Commerce betreiben, ist die Nutzung ihrerNative IP aus ÜberseeIn Kombination mit der XPath-Positionierung ist dies eine solide Methode, um Daten von Wettbewerbern zu erfassen.

