首页 > 解决方案 > 无头硒立即退出

问题描述

我有一个无头网络刮刀。当它运行刮板时,它会获取一个基本网址,刮掉该页面上的链接,然后刮掉它从该页面获得的链接。

我遇到的问题是,当我运行刮板时,它几乎立即退出。当我正常运行刮刀(非无头)时,它工作得非常好。

这些是我的硒论点:

options = webdriver.ChromeOptions()
options.binary_location = os.environ.get('GOOGLE_CHROME_BIN')
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')    

driver = webdriver.Chrome(executable_path=os.environ.get('CHROMEDRIVER_PATH'),
                          options=options)

我也尝试添加这些选项,但它给了我相同的结果:

options.add_argument('--disable-dev-shm-usage')
options.add_argument("--window-size=1920,1080")
options.add_argument("--start-maximized")

我该如何解决这个问题?我正在尝试将此刮板部署到heroku,但我上面尝试过的所有方法都没有奏效。

标签: pythonseleniumselenium-webdriver

解决方案


除非指定了用户代理,否则基本上某些网站不会以无头模式加载。

为了解决这个问题,我添加了:

user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
options.add_argument(f'user-agent={user_agent}')

这解决了我的刮刀立即退出的问题


推荐阅读