2016-12-09 482 views
4

所以我在Heroku上有一个Flask服务器,它在一段时间内一直工作正常。现在,根据新的要求,我需要添加功能到Flask服务器以从中获取页面一个外部网站。由于我最熟悉的原因,我使用Selenium和Chrome网络驱动程序来做到这一点。我当时可以设置它,它工作正常,但我很不确定如何设置它Heroku服务器。我读了一些关于buildpacks,发现这个buildpack为ChromeDriver:在Heroku上运行ChromeDriver与Python selenium

https://elements.heroku.com/buildpacks/jimmynguyc/heroku-buildpack-chromedriver 

但是,我不知道如何着手further.How我安装铬浏览器本身,以配合这一切需要什么?

回答

4

我有同样的问题,下面的步骤为我工作得很好:

  • 我增加了以下buildpacks在Heroku: https://github.com/heroku/heroku-buildpack-xvfb-google-chrome (安装Chrome,因为chromedriver要求的话)和 https://github.com/heroku/heroku-buildpack-chromedriver
  • 我创建了一个环境变量GOOGLE_CHROME_BIN,在heroku上有chrome的路径:/app/.apt/usr/bin/google-chrome和一个名为CHROMEDRIVER_PATH的环境变量,其路径为heroku上的chromedriver:/app/.chromedriver /斌/ 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) 
    

(首先,我想不带任何参数配置chromedriver,但我遇到了以下错误:“浏览器无法启动:死机” --disable-gpu和--no-sandbox解决了我的问题)。

相关问题