繁体   English   中英

使用 python selenium 迭代谷歌搜索结果

[英]Iterating google search results using python selenium

我想迭代点击谷歌搜索结果并复制每个站点的菜单。 到目前为止,我正在复制菜单并返回结果页面,但无法迭代单击结果。现在,我想单独学习迭代搜索结果,但我陷入了过时的元素引用异常,我做到了很少看到其他来源,但没有运气。

from selenium import webdriver
chrome_path = r"C:\Users\Downloads\chromedriver_win32\chromedriver.exe"
driver = webdriver.Chrome(chrome_path)
driver.get('https://www.google.com?q=python#q=python')
weblinks = driver.find_elements_by_xpath("//div[@class='g']//a[not(@class)]");
for links in weblinks[0:9]:
    links.get_attribute("href")
    print(links.get_attribute("href"))
    links.click()
    driver.back()

StaleElementReferenceException 意味着您所指的元素不再存在。 这通常发生在页面自动重绘时。 在您的情况下,您更改页面并返回,因此元素将被重绘 100%。

默认解决方案是每次搜索循环内的列表。

如果您想确保列表每次迭代都相同,则需要添加一些额外的检查(比较文本等)

如果您使用此代码进行抓取,则可能不需要返回导航。 直接用driver.get(href)打开每一页

在这里您可以找到代码示例: 如何使用 Selenium WebDriver 在新选项卡(chrome)中打开链接?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM