Lokalisieren und scrapen ein Element mit nahegelegenem Text
Wednesday, July 21, 2021 9:49 AMOctoparse lokalisiert Daten mit XPath, aber Daten können ihre Position innerhalb der Webseite ändern. Um dieses Problem zu lösen, zeigen wir Ihnen, wie Sie Daten genauer extrahieren, indem Sie die mit einem Text in der Nähe verknüpfen.
Schauen wir uns zunächst ein Beispiel an, bei dem diese Methode nützlich sein kann.
Im obigen Beispiel befindet sich der Wert für "Brand" neben den Worten "Brand". In ähnlicher Weise wird der Wert für "Item Weight" immer neben den Worten "Item Weight" zu finden sein. Das gleiche Muster sollte für den Rest der Liste gelten.
Während die Wörter "Item Weight" vielleicht von der dritten in die vierte Zeile der Liste wechselt, sollte der zugehörige Wert immer daneben zu finden sein. Ein sicherer Weg, die zugehörigen Werte beliebiger Elemente zu finden und zu erfassen, besteht daher tatsächlich darin, zuerst zu suchen, wo die Wörter stehen, und dann die Daten daneben zu lokalisieren. In diesem Beispiel können wir den Wert "10 pounds" genauer erfassen, indem wir ihn mit dem Text von "Item Weight" in Verbindung bringen, anstatt ihn direkt auf der Seite zu lokalisieren.
Führen Sie die folgenden Schritte aus, um Daten zu extrahieren:
1) Klicken Sie auf "10 pounds", um den Wert für "Item Weight" zu erfassen. Öffnen Sie nach dem Extrahieren die Aktionseinstellungen, um die Datenfelder zu überprüfen
2) Klicken Sie auf "Customize XPath"
3) Finden Sie den XPath, der auf den Text des Zieldatenfeldes hinweist
• Öffnen Sie die Seite in Chrome, klicken Sie mit der rechten Maustaste, um die Zieldaten zu inspizieren
• Beachten Sie, dass der Text von "Item Weight" im <th>-Tag zu finden ist, während der zugehörige Wert im <td>-Tag direkt darunter zu finden ist.
• Sobald wir die Verbindung dazwischen erkennen, können wir einen XPath schreiben, damit wir den Ort lokalisieren, an dem wir die Wörter tatsächlich finden: "//th[contains(text(),'Item Weight')]/following-sibling::td[1]" - Dieser XPath-Ausdruck weist Octoparse an, nach dem <th>-Tag zu suchen, das den Text von "Item Weight" enthält, und dann das erste <td>-Tag direkt darunter zu finden. Und das ergibt genau das, was wir wollen, den zugehörigen Wert von "Item Weight".
• Geben Sie den neuen XPath in das Textfeld "Matching XPath" ein, klicken Sie auf "OK", um die Einstellungen zu speichern.
Jetzt sucht Octoparse immer nach dem zugehörigen Wert von "Item Weight", je nachdem, wo der Text "Item Weight" auf der Webseite angezeigt werden. Wenden Sie die Methode auf ähnliche Felder in der Liste an, können Sie die Ausnahmen von "Element nicht gefunden" verringern.
Tipps!
Following-sibling wird sehr oft verwendet, um ein Element zu finden, das sich neben einem anderen bestimmten Element befindet.
Erfahren Sie hier mehr über XPATH !