get Liste der Elemente innerhalb der div-tag mit xpath
Habe ich eine html wie diese
<div id="all-stories" class="book">
<ul>
<li title="Book1" ><a href="book1_url">Book1</a></li>
<li title="Book2" ><a href="book2_url">Book2</a></li>
</ul>
</div>
Möchte ich, um die Bücher und deren jeweiligen url die Verwendung von xpath, aber es scheint mein Ansatz nicht funktioniert. für Einfachheit habe ich versucht, zu extrahieren Sie alle Elemente unter "li" - tags wie folgt
lis = tree.xpath('//div[@id="all-stories"]/div/text()')
- Wollen Sie nicht
//div[@id="all-stories"]/ul/li/text()
? - Ich habe versucht, den Ansatz aber nicht bekommen, mir das Ergebnis.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erträge
Den XPath -
//div[@id="all-stories"]/div
passt nicht alles, denn es gibt kein Kinddiv
innerhalb der äußerendiv
tag.Den XPath -
//div[@id="all-stories"]/li
würde auch nicht passen, weil es kein direkte Kindli
tage innerhalb derdiv
tag. Allerdings//div[@id="all-stories"]//li
hat matchli
- tags, weil//
sagt XPath-rekursiv suchen, so tief wie notwendig, um dieli
tags.Nun, die Inhalte, die Sie suchen, ist nicht in der
li
tag. Es ist in dera
tag. Also anstatt XPath verwenden'//div[@id="all-stories"]//li/a'
zu erreichena
- tags.Der Wert der
href
Attribut zugegriffen werden kann, mitatag.attrib['href']
, und der text mitatag.text_content()
.<ul id="ABC"><li>172</li><li>68</li></ul>
. Ich schrieb meinen code wie folgt:for li in tree.xpath('//ul[@id="ABC"]//li'):
;print li.text_contet()
Aber nichts druckt.text_contet
-->text_content
), dein code sieht gut aus. Hier ist einer lauffähigen version des Codes, die Drucke 172 und 68: ideone.com/cBmjrM.