2009-06-07 13 views
1

Ich möchte den Xpath eines Attributs abrufen (Beispiel "Marke" eines Produkts von einer Website des Einzelhändlers).extrahieren xpath

Ein Weg, dies zu tun ist mit Addons wie XPATHER oder XPATH Checker zu Firefox, Eröffnen der Website mit Firefox und Rechtsklick auf die gewünschte Attrtrute, die mich interessiert. Das ist in Ordnung. Aber ich möchte diese Informationen für viele Attribute erfassen und das rechte Klicken auf jedes Attribut kann zeitaufwendig sein. Auch das andere Problem, das ich habe, ist, dass Attribute, die ich möglicherweise interessiert, dort für ein Produkt sein werden. Die anderen Attribute können für ein anderes Produkt sein. Also, ich werde das Produkt & gehen dann tun Sie es manuell erneut.

Gibt es eine automatisierte oder programmatische Möglichkeit, den xpath der gewünschten Attribute von einer Website abzurufen, anstatt dies manuell tun zu müssen?

Antwort

1

Sie feststellen müssen, dass nicht alle Websites gültige XML verwenden, die Sie XPath auf verwenden können ...

Das heißt, sollten Sie einige HTML-Parser überprüfen, die Sie XPath auf HTML zu verwenden, auch erlaubt, wenn es kein gültiges XML.

Da Sie die Technologie, mit der Sie arbeiten, nicht angegeben haben, schlage ich die .NET HTML Agility Pack vor. Wenn Sie andere benötigen, suchen Sie hier auf SO nach Fragen, die sich damit beschäftigen.

0

Die Lösung, die ich für diese Art der Sache verwenden ist einen XPath, so etwas zu schreiben:

//*[text()="Brand"]/following-sibling::* 
//*[text()="Color"]/following-sibling::* 
//*[text()="Size"]/following-sibling::* 
//*[text()="Material"]/following-sibling::* 

Es wird von der Suche nach allen Elementen (Etikett) mit dem Text suchen Sie wollen, und dann auf die nächsten Geschwister funktioniert im HTML. Ohne eine bestimmte URL zu sehen kann ich nicht weiterhelfen.

Dies ist eine verallgemeinerte Version, in der Sie spezifischere Versionen erstellen können, indem Sie die Sternchen durch Tag-Typen ersetzen. Sie können auch anders navigieren, indem Sie die Achse nach dem Geschwister durch etwas anderes ersetzen.

Ich benutze xPaths in import.io, um die APIs für diese Art von Sache die ganze Zeit zu machen. Es ist nur eine Frage des Findens eines xPath, der generisch genug ist, um das HTML zu finden, egal wo es auf der Seite ist, aber spezifisch ist genug, um die richtigen Daten zu erhalten.