【问题标题】:Headless Selenium suddenly stopped working无头硒突然停止工作
【发布时间】:2019-08-12 01:21:15
【问题描述】:

我已经使用 Selenium 和 python 进行网络抓取已经有几个星期了。它一直工作得相当好。一直在 macOS 和 Windows 7 上运行。但是,无头网络驱动程序突然停止工作。我一直在使用具有以下设置的 chromedriver:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless")
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
chrome_options.add_argument("--window-size=1920x1080")
driver = webdriver.Chrome(chrome_options=options)

driver.get('url')

最初我必须添加窗口、gpu 和沙盒参数才能使其正常工作,直到现在它确实有效。但是,现在运行脚本时,它会卡在 driver.get('url') 处。它不会产生错误或任何东西似乎无限期地运行。当我在没有头的情况下运行并简单地运行时:

from selenium import webdriver
driver = webdriver.Chrome()

driver.get('url')

它完全按照预期工作。这个问题也与我的 Windows 机器隔离。我从哪里开始?

【问题讨论】:

  • 您是否同时更改了 Chrome 中的某些内容(更新、配置等)或其他参数?因为最后一个例子表明headless被禁用了,而且也没有沙箱和gpu。您是否尝试过这些参数的不同组合?
  • 唯一想到的是我删除了 chrome 驱动程序在 windows 上的 tmp 文件夹中创建的几 GB 文件夹。已经创建了数千个“scoped_dir”文件夹并占用了我的存储空间。那可能是什么?否则我确实尝试了这些论点的组合,但没有任何运气。

标签: python selenium selenium-webdriver web-scraping


【解决方案1】:

已解决

由于某种原因,代理设置减慢了它的速度。因此它通过添加解决:

options.add_argument(f'--proxy-server={None}')

【讨论】:

    【解决方案2】:

    我遇到了完全相同的问题。它在脚本运行良好数周后随机出现。 OP 将我引向了正确的方向,但他的解决方案对我不起作用。我不得不补充:

    chrome_options.add_argument("--no-proxy-server")
    chrome_options.add_argument("--proxy-server='direct://'");
    chrome_options.add_argument("--proxy-bypass-list=*");
    

    我的完整代码:

    chrome_options = Options()  
    chrome_options.add_argument("--headless")  
    chrome_options.add_argument("--start-maximized")
    chrome_options.add_argument("--start-fullscreen")
    chrome_options.add_argument("--no-proxy-server")
    chrome_options.add_argument("--proxy-server='direct://'");
    chrome_options.add_argument("--proxy-bypass-list=*");
    chrome_options.binary_location = "C:\Program Files (x86)\Google\Chrome Dev\\Application\chrome.exe" 
    
    browser = webdriver.Chrome(options=chrome_options) 
    browser.set_window_size(2000, 1080)
    

    另请参阅:

    Headless chrome driver too slow 和: Chrome webdriver produces timeout in selenium

    【讨论】:

      猜你喜欢
      • 2017-08-22
      • 2021-02-01
      • 2016-12-29
      • 2018-05-09
      • 2015-12-07
      • 2015-08-23
      • 2014-02-05
      • 2013-09-06
      相关资源
      最近更新 更多