首页 > 解决方案 > 正则表达式在谷歌学者更多的结果定位器

问题描述

我想从 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中节点结构的截图。

在此处输入图像描述

标签: pythonweb-scraping

解决方案


使用 chrome Dev-Tools,您可以选择元素并单击Copy XPath。这将为您提供一个保证与该元素一起使用的选择器。我附上了一张显示此内容的图片:

如何复制元素的 XPath

这是它返回的内容://*[@id="gs_n"]/center/table/tbody/tr/td[12]/a/b

但是,这可以进一步调整。经过一些分析,我发现它//*[(@id = "gs_n")]//a//b也同样有效。

由于您使用的是 chrome 驱动程序,因此这些值应该可以正常工作,因为 DevTools 是生成它的那个。

编辑

我认为我们指的是不同的选择器,因此给您带来了问题。考虑截图: DevTools 的屏幕截图显示了为什么 OP 找不到合适的 XPath

蓝色高亮代表我使用的元素,而绿色高亮代表我认为您关注的元素。作为一般说明,请尝试在使用时右键单击所需的特定元素Inspect Element


推荐阅读