所以我在 Heroku 上有一个 Flask 服务器,它已经按预期正常工作了一段时间。现在,根据新的要求,我需要向 Flask 服务器添加功能以从外部网站获取页面。由于某些原因我最了解的是,我正在使用 Selenium 和 Chrome 网络驱动程序来执行此操作。我可以在本地进行设置并且工作正常,但我不确定如何在 Heroku 服务器上进行设置。我阅读了一些关于 buildpacks 的内容,并找到了这个 ChromeDriver 的 buildpack:
https://elements.heroku.com/buildpacks/jimmynguyc/heroku-buildpack-chromedriver
但是,我不确定如何进一步进行。我如何安装 chromium 浏览器本身,以及还需要什么来将它们捆绑在一起?
最佳答案
我遇到了同样的问题,以下步骤对我来说效果很好:
- 我在 heroku 上添加了以下构建包: https://github.com/heroku/heroku-buildpack-xvfb-google-chrome (安装 chrome,因为 chromedriver 需要它)和 https://github.com/heroku/heroku-buildpack-chromedriver .
- 我创建了一个环境变量 GOOGLE_CHROME_BIN,其中包含 chrome 在 heroku 上的路径:/app/.apt/usr/bin/google-chrome 和一个名为 CHROMEDRIVER_PATH 的环境变量,其中包含 chromedriver 在 heroku 上的路径:/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)
(首先,我尝试配置不带参数的 chromedriver,但遇到以下错误:“Chrome 无法启动:崩溃”。--disable-gpu 和 --no-sandbox 为我解决了这个问题)。
关于python - 在 Heroku 上使用 Python selenium 运行 ChromeDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41059144/