python - 如何使用 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
谢谢您的帮助!
解决方案
我认为它应该可以解决您的问题:
//div[@class='r'][count(ancestor::*[contains(concat(' ', @class, ' '), ' g ')])=1]
上面关于 xpath 的有用信息:这里
推荐阅读
- python - 从 .py 文件访问 StringProperty 到 .kv 文件中的 TextInput
- angular - 在 Angular 4 Jasmin 测试中,我因意外的测试用例而被抛出 [object ErrorEvent]
- uitableview - 使用 UITableViewAutomaticDimension 根据 UITableViewCell 中的文本长度设置标签的宽度和高度
- css - 固定剪裁元素的层次结构
- dynamics-crm - 单击机会产品实体子网格上的“+”按钮打开快速创建表单
- amazon-ec2 - /boot/grub/menu.lst 的新版本可用
- unit-testing - 使用条件对概率分布进行单元测试
- c# - JsonReaderException at parse() - HololensDeploy
- c# - 将列表中的数据显示到剃刀视图
- delphi - 当“...”单击代表另一个 TCollection 的 TCollectionItem 属性时没有反应