gpt4 book ai didi

python-3.x - 谷歌使用 Selenium 搜索下一页

转载 作者:行者123 更新时间:2023-12-05 03:04:30 25 4
gpt4 key购买 nike

在我必须进入第一个和第二个搜索页面中的链接之后,我正在尝试自动点击谷歌搜索中的下一页。

到目前为止,我已经能够执行以下操作:

  1. 启动 Chrome 浏览器
  2. 转到 Google 网页
  3. 输入搜索词
  4. 点击搜索图标
  5. 进入第一个和第二个谷歌页面上的链接

请参阅下面的代码:

from time import sleep
from selenium import webdriver
from parsel import Selector
from selenium.webdriver.common.keys import Keys

#path to the chromedriver
driver = webdriver.Chrome('/Users\my_path/chromedriver')

driver.get('https://www.gooogle.com')

#locate search form by name
search_query = driver.find_element_by_name('q')

#Input search words
search_query.send_keys('X-Men')

#Simulate return key
search_query.send_keys(Keys.RETURN)

Xmen_urls = driver.find_elements_by_class_name('iUh30')

for page in range(0,3):
Xmen_urls = [url.text for url in Xmen_urls]

#loop to iterate through all links in the google search query
for Xmen_url in Xmen_urls:
driver.get(Xmen_url)
sel = Selector(text = driver.page_source)

#Go back to google search
driver.get('https://www.gooogle.com')

#locate search form by name
search_query = driver.find_element_by_name('q')

#Input search words
search_query.send_keys('X-Men')

#Simulate return key
search_query.send_keys(Keys.RETURN)

#find next page icon in Google search
Next_Google_page = driver.find_element_by_link_text("Next").click()

page += 1

当我完成“第二个”搜索页面上的链接收集后,如何告诉算法从“第二个”搜索页面开始而不是第一个搜索页面(这将使我进入 >2 个页面).

我知道这是一个“for 循环”和语法重新安排我在某处遗漏了但我的大脑在这一点上卡住了。

我看到了这个页面:How to click the next link in google search results?但它只有在我没有离开谷歌搜索页面时才有用

我做错了什么?

最佳答案

我可以通过两种方式查看:

使用 window_handles 在单独的窗口中打开每个 X-Men url,收集 page_source,关闭窗口并切换回原始窗口。

driver.execute_script("window.open(X-Men_url, 'new_window')")
driver.switch_to.window(driver.window_handles[1])
sel = Selector(text = driver.page_source)
driver.close()
driver.switch_to.window(driver.window_handles[0])

上面的代码可能不完全正确,但起到了一定的作用。

另一种方法是在 FOR 循环开始时使用循环模拟对 NEXT 的多次点击:

a = 0;
while a <= page:
driver.find_element_by_xpath("//*[contains(local-name(), 'span') and contains(text(), 'Next')]").click()
a = a+1

关于python-3.x - 谷歌使用 Selenium 搜索下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52876136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com