首页 > 解决方案 > 如何使用 Xpath 抓取 Google 网址(包含和不包含)

问题描述

我想从谷歌结果中获取网址。

这个 xpath 工作得很好但是有一个问题:

//div[@class='r']/a

Google 显示了一些来自精选片段和 People Also Ask ( https://www.google.com/search?q=people+also+ask+example ) 的结果,并且 xpath 获取所有这些 url 结果。

我意识到有一个带有“g”类的父 div,并且只有 People Also Ask div 具有“kno-kp”类。

所以解决方案很简单:

选择每个包含“g”且不包含“kno-kp”的 div 类

谷歌搜索结果

这是我的 xpath,但它不起作用:

//div[contains(@class,'g') and not(contains(@class,'kno-kp'))]//div[@class='r']/a

谢谢您的帮助!

标签: pythonseleniumxpath

解决方案


我认为它应该可以解决您的问题:

//div[@class='r'][count(ancestor::*[contains(concat(' ', @class, ' '), ' g ')])=1]

上面关于 xpath 的有用信息:这里


推荐阅读