【发布时间】:2013-01-15 21:31:57
【问题描述】:
查看这个 html
<div>
<p>
<span class="abc">Monitor</span> <b>$300</b>
</p>
<a href="/add">Add to cart</a>
</div>
<div>
<p>
<span class="abc">Keyboard</span> $20
</p>
<a href="/add">Add to cart</a>
</div>
使用 xpath 我想解析 Monitor $300 和 Keyboard $20。我使用这个 xpath
//div[a[contains(., "Add to cart")]]/p/text()
但它选择了<span class="abc">Monitor</span> <b>$300</b>。我不想要标签。如何只获取文本?
【问题讨论】:
-
text()永远不应该选择元素。你用的是什么 XML 解析器? -
@choroba
scrapy.selector.lxmlsel.HtmlXPathSelector -
您如何访问该值?在 DOM Level 3 单词中,您可以选择
p元素,例如//div[a[contains(., "Add to cart")]]/p然后访问textContent属性以获取纯文本内容。 -
@MartinHonnen 我正在使用
XPathSelector
标签: html xml xpath html-parsing