2017-03-10 2 views
0

Ich scrape Inhalt mit XPath. Was ich kratzen muss ist ein Inhalt in div mit gegeben id. Innerhalb dieser div gibt es noch eine div, deren Inhalt ich nicht kratzen möchte.XPath: Kindelement ausschließen

Ich verwende folgende XPath:

//[@id='Main'][not(contains(div/@id, 'orderform'))]

Aber mit dieser XPath i Extraktion erhalten nicht von allen Urls, wie ich erwarten würde, aber von diesen Urls, die div id="Main" tun haben und haben nicht div id="orderform" innen es.

Welche XPath sollte ich stattdessen verwenden, um die gesamte div id="Main" zu kratzen, aber den Inhalt von div id="orderform" ausschließen?

+0

den HTML-Code –

+0

@ 宏杰 李 bearbeitet Beitrag –

Antwort

1
//*[@id='Main']//*[not(div[@id="orderform"])] 

das div Tag ist ein Kind-Tag, sollten Sie eine Ebene tiefer gehen.

//*[@id='Main']/*[not(div[@id="orderform"])] 
+0

es funktioniert posten, aber es extrahiert jedes HTML-Element als bestimmte Einheit, so dass ich statt einer Spalte 316 Spalten extrahiert :) ist es möglich, alles in zu erhalten das Gleiche? –

+0

@Chilly Bang Sie müssen auf den Child-Tag zugreifen dann filtern, ich aktualisiere die Antwort, es ist das Beste, was ich tun kann –

+0

gibt es 16 Spalten jetzt :) –

Verwandte Themen