python - 正则表达式在谷歌学者更多的结果定位器
问题描述
我想从 Python 软件中点击更多关于 google 学者的结果。但我找不到正确的 XPATH。我找到了结果按钮,但没有找到下一个站点的链接,从图片中可以看出,该站点似乎位于下一层的范围内。我试过"//button[@aria-label='Next']"
和"//button[@aria-label='Next']\span"
和"//button[@aria-label='Next']\span\span[1]"
。为什么这不起作用?
url = "https://scholar.google.ch/scholar?hl=en&as_sdt=0%2C5&q=bla&btnG="
driver = webdriver.Chrome("~/chromedriver")
driver.get(url)
driver.find_element_by_xpath("//button[@aria-label='Next']").click()
我收到错误消息,element not clickable
因为我无法访问实际按钮的位置。
下面是html中节点结构的截图。
解决方案
使用 chrome Dev-Tools,您可以选择元素并单击Copy XPath
。这将为您提供一个保证与该元素一起使用的选择器。我附上了一张显示此内容的图片:
这是它返回的内容://*[@id="gs_n"]/center/table/tbody/tr/td[12]/a/b
但是,这可以进一步调整。经过一些分析,我发现它//*[(@id = "gs_n")]//a//b
也同样有效。
由于您使用的是 chrome 驱动程序,因此这些值应该可以正常工作,因为 DevTools 是生成它的那个。
编辑
我认为我们指的是不同的选择器,因此给您带来了问题。考虑截图:
蓝色高亮代表我使用的元素,而绿色高亮代表我认为您关注的元素。作为一般说明,请尝试在使用时右键单击所需的特定元素Inspect Element
。
推荐阅读
- ios - 如何处理 UICollectionView CompositionalLayout 中的空项目部分
- flutter - 混淆 Flutter 应用时出现错误
- powershell - 在 PowerShell 脚本中读取目录中的文件
- python - Pytorch fasterrcnn resnet50 fpn 损失函数
- python - 是什么导致 Tkinter 回调中的异常?
- javascript - 找到元素数量最多的对象
- pyspark - 某些步骤后,AWS 日志未写入云手表
- python - 波形写入功能不起作用,我做错了什么?
- python - 如何从兄弟包进行python相对导入
- windows - Bash 终端在 VSCode 中崩溃。`usr/bin/bash: 找不到配置文件/usr/local/etc/profile.global; 退出。`