硒chromedriver无头浏览器从网站上抓取数据的问题

时间:2018-12-31 15:40:44

标签: python multithreading selenium-webdriver selenium-chromedriver google-chrome-headless

我正在使用最新的chromedriver 2.45。我目前正在建立一个程序,可以从网站上抓取股票数据。我有大约3000种股票需要抓取,因此我使用多线程来加快工作速度。如果关闭无头浏览器,我的程序似乎可以正常工作,但是当我将无头浏览器设置为true(目的是加快脚本运行)时,运行以下行时有时线程会卡住:

 browser.get(url)

对于每种股票,在运行上述脚本之前,将运行以下脚本:

options = Options()    
chrome_prefs = {}
options.experimental_options["prefs"] = chrome_prefs
chrome_prefs["profile.default_content_settings"] = {"images": 2}
chrome_prefs["profile.managed_default_content_settings"] = {"images": 2}
options.add_argument('--headless')
options.add_argument("–no-sandbox")
options.add_argument("--disable-gpu")
options.add_argument("--disable-extensions")
options.add_argument("disable-infobars")
options.add_argument('--disable-useAutomationExtension')
options.Proxy = None 
options.add_argument("–disable-dev-shm-usage")    
options.add_argument('blink-settings=imagesEnabled=false')
browser = webdriver.Chrome(options=options)
browser.minimize_window()

可悲的是,当它陷入困境时,它不会引发任何异常。我认为该线程正在尝试访问url,但是该站点未加载,因此它只是一直在等待吗?可能是这样吗?如何解决问题?还是一种解决方法是为browser.get(url)设置一个计时器,说10秒钟,如果它没有获取任何数据,它将再次刷新链接并继续执行脚本?

还有什么可以加快脚本运行速度的方法或设置吗?并且当我执行脚本时,有可能使该程序在后台运行,因为它会不断弹出(尽管稍后将其最小化,但chromedriver仍在前面。)

谢谢您的时间!

0 个答案:

没有答案
相关问题