在Heroku上使用Python selenium运行ChromeDriver

Ami*_*tad 9 python selenium webdriver heroku selenium-chromedriver

所以我在Heroku上有一个Flask服务器已经按预期工作了一段时间.现在,根据新的要求,我需要向Flask服务器添加功能以从外部网站获取页面.因为最有名的原因我,我正在使用Selenium和Chrome网络驱动程序来执行此操作.我能够设置它并且它工作正常但我不太确定如何在Heroku服务器上设置它.我读了一些关于buildpacks的内容,发现了ChromeDriver的这个buildpack:

https://elements.heroku.com/buildpacks/jimmynguyc/heroku-buildpack-chromedriver
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何继续进行.我如何安装铬浏览器本身还需要什么才能将其全部绑定?

小智 17

我有同样的问题,以下步骤对我来说很好:

  • 我在heroku上添加了以下buildpack:https: //github.com/heroku/heroku-buildpack-xvfb-google-chrome (安装chrome,因为chromedriver需要它)和 https://github.com/heroku/heroku- buildpack-chromedriver.
  • 我在heroku上创建了一个环境变量GOOGLE_CHROME_BIN,其路径为chrome:/app/.apt/usr/bin/google-chrome,以及一个名为CHROMEDRIVER_PATH的环境变量,其路径为heroku上的chromedriver:/app/.chromedriver/bin/ chromedriver.
  • 在我的python文件中,我配置了chromedriver:

    chrome_options = Options()
    chrome_options.binary_location = GOOGLE_CHROME_BIN
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('--no-sandbox')
    driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, chrome_options=chrome_options)
    
    Run Code Online (Sandbox Code Playgroud)

(首先,我尝试配置没有参数的chromedriver,但我遇到了以下错误:"Chrome无法启动:崩溃".-- disable-gpu和--no-sandbox为我解决了问题).

  • 感谢您抽出时间回复此问题,即使它已经过时了.它解决了我在heroku上使用额外buildpack的问题. (3认同)