0

我正在尝试创建一个包含两个数据项的字典列表。

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

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

4

3 回答 3

0

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

于 2013-02-18T22:10:07.553 回答
0

听起来这就是你想要的:

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

你能试试吗?

于 2013-02-18T22:10:51.903 回答
0

您是否正在寻找此 XPath:

//div[@id='content']/*[self::p/a[contains(@href,'game')]/img[@src] or self::h2/a[contains(@href,'game')]/img[@src]]/a[2]
于 2013-02-19T09:09:19.380 回答