【问题标题】:Selenium scraping Stops when I switch to a different tab当我切换到不同的选项卡时,Selenium 抓取停止
【发布时间】:2020-12-18 05:14:41
【问题描述】:

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

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

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

【问题讨论】:

  • 抓住窗把手并穿过它们。

标签: python selenium web-scraping


【解决方案1】:

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

这是来自here的示例:

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()

【讨论】:

  • 仍然,它没有向下滚动来获取新的项目集
【解决方案2】:

您可以尝试无头运行 selenium,这意味着它会在不实际打开浏览器窗口的情况下抓取数据。

查看此文档/指南:https://duo.com/decipher/driving-headless-chrome-with-python

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-14
    • 2011-09-27
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    相关资源
    最近更新 更多