Wenn wir eine Liste von Items für eine Webseite erstellt haben, enthält diese Liste manchmal vielleicht einige unerwünschte „Anzeigen“-Items.
Lassen wir Yelp als ein Beispiel nennen. Der automatisch generierte Loop enthält vielleicht alle gesponserten Ergebnisse, die wir nicht benötigen.
Ach so. Was sollten Sie nun machen, wenn Sie nur die nicht-gesponserten Items scrapen möchten?
Eine praktische Methode ist es, dass Sie manuell die unerwünschten Datenzeilen löschen, indem Sie auf den Mülleimer-Icon unter „Action column“ klicken.
Jedoch kostet oben genannte Methode ohne Zweifel viel Zeit. Wenn wir jedes unerwünschte Item löschen möchten, müssen wir den XPath für Loop-Item modifizieren, damit er nur die nicht-gesponserten Items lokalisieren kann.
Überprüfen Sie in Chrome DevTools den Quellcode der Items, dann würden Sie sehen, dass es keine wesentliche Unterschiede zwischen den Anzeigen-Items und den nicht-gesponserten Items.
Deshalb müssen wir mit XPath unsere Auswahl eingrenzen. Es ist die Zeit zum Quiz mit XPath!
Folgenden Link möchten Sie vermutlich verwenden: https://www.yelp.com/search?find_desc=restaurant&find_loc=Los+Angeles%2C+CA+90001&ns=1
Eine Beispiel-Methode zum Eingrenzen Ihrer Auswahl ist, mehrere Bedingungen für Ihren XPath hinzuzufügen:
1. Unsere gewünschten Daten werden unter dem Teil von „All results“ aufgelistet. Deswegen ist es genau der Ort, wo wir unsere Auswahl beginnen.
2. Jede Seite enthält nur zehn Ergebnisse, deshalb sollten wir nach dem Erhalten der ersten zehn Ergebnisse unsere Auswahl beenden.
Also sieht der endgültige XPath wie folgend aus:
//h2[text()='All Results']/ancestor::li/following::li[position()<11]
Nun würde Octoparse alle unerwünschten fördernden Items aus unserer Liste eingrenzen.