条件xpath?如果匹配更具体的xpath,则需要xpath

时间:2013-02-18 20:39:35

标签: python xpath

我正在尝试使用两个数据项创建一个dicts列表。

我正在查看的页面有//div[@id='content']/*[self::p or self::h2]/a[2]的37个匹配项;但是,它只有33场比赛 //div[@id='content']/*[self::p or self::h2]/a[contains(@href,'game')]/img[@src] 这两个xpath共有//div[@id='content']/*[self::p or self::h2]个。如果第二个xpath匹配,我实际上只希望获得第一个xpath匹配的元素,并留下没有第二个元素的4。

我希望这可以通过xpath实现,但如果没有,可以使用一些建议来编写一个在python中实现此功能的函数。

3 个答案:

答案 0 :(得分:0)

你可以在XPath中进行匹配,然后简单地在Python中将结果节点作为父节点。

答案 1 :(得分:0)

听起来这就是你想要的:

//div[@id='content']/*[self::p or self::h2]/a[2][contains(@href,'game') and img[@src]]

你可以尝试一下吗?

答案 2 :(得分:0)

您是否正在寻找此XPath:

//div[@id='content']/*[self::p/a[contains(@href,'game')]/img[@src] or self::h2/a[contains(@href,'game')]/img[@src]]/a[2]