使用 XPath 在 Python 中选择下一个节点

我正在尝试从维基百科国家/地区页面中抓取人口信息。我遇到的问题是,在我尝试抓取的节点中没有涉及人口的信息,相反,人口仅在其之前的节点中被引用。因此,我尝试使用 Xpath 将表达式移动到下一个节点,但找不到正确的命令。


下面是一个 xpath 表达式,它让我到达我想要抓取的人口数量之前的节点:

//table[@class='infobox geography vcard']//tr[@class = 'mergedtoprow']//a[contains(@href,"Demographics")]/../..

它在表中搜索包含“人口统计”的 href,然后向上两级找到父母的父母。但问题是标题与我要提取的数字位于不同的节点中,因此我需要可以转到下一个节点的内容。

我已经看到了表达式 /following-sibling::div[1] 但它似乎不适用于我的表达式,我不知道为什么。

如果有人能想到一种更直接的方法来查找上述网页中的节点,那也很好。


米琪卡哇伊
浏览 211回答 1
1回答

慕沐林林

我认为你的问题的一般答案是:“谓词可以嵌套”。//table[  @class='infobox geography vcard']//tr[  @class = 'mergedtoprow' and .//a[contains(@href, "Demographics")]]/following-sibling::tr[1]/td/text()[1]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5