首页 > 解决方案 > 当我切换到不同的选项卡时,Selenium 抓取停止

问题描述

我必须从印度电子商务网站上抓取产品详细信息。显示前 20 个项目后,我们需要向下滚动以获取下一组项目。我在 python 中使用 selenium 来打开一个选项卡来抓取网站。但是当我从这个选项卡切换到另一个选项卡或窗口时,滚动会立即停止并且无法进一步抓取。这部分代码为我滚动。

arrow = browser.find_element_by_xpath('//div[@id="see-more-products" and @class="show-more btn"]')
arrow.click()

有什么方法可以在不激活该选项卡的情况下继续抓取?

标签: pythonseleniumweb-scraping

解决方案


在继续之前,您需要告诉 Selenium 切换选项卡。

这是这里的一个例子:

from selenium import webdriver
import time
driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe")
driver.get("https://accounts.google.com/signup")
driver.find_element_by_link_text("Help").click()
#prints parent window title
print("Parent window title: " + driver.title)
#get current window handle
p = driver.current_window_handle
#get first child window
chwnd = driver.window_handles
for w in chwnd:
   #switch focus to child window
   if(w!=p):
   driver.switch_to.window(w)
   break
time.sleep(0.9)
print("Child window title: " + driver.title)
driver.quit()

推荐阅读