簡體   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