我有一个html页面,看起来像这样:
<div>
<h1>First Item</h1>
<p> the text I want </p>
</div>
<div>
<h1>Second Item</h1>
<p> the text I don't want </p>
</div>
在每个页面抓取中,“第一项”的标题可能位于不同的标签级别,因此索引不是固定的。
我想要一些看起来像(这是一个伪代码)的选择。
from lxml import html
locate_position = locate(html.xpath(//div/h1[contains("First Item")])))
scrape = html.xpath(//div[locate_position]/p)
发布于 2019-04-17 02:56:10
如果您只想匹配前面的同级:
/p/preceding-sibling::contains(h1,"First Item")
一个更接近您的示例的选项是:
/div[contains(h1, "First Item")]/p
它得到的p是有h1子级的div的子级。
https://stackoverflow.com/questions/55714824
复制相似问题