在 Heroku 上使用 Python selenium 运行 ChromeDriver [英] Running ChromeDriver with Python selenium on Heroku
问题描述
所以我在 Heroku 上有一个 Flask 服务器,它按预期工作了一段时间.现在,根据新的要求,我需要向 Flask 服务器添加功能以从外部网站获取页面.由于原因我最为人所知的是,我使用 Selenium 和 Chrome 网络驱动程序来做到这一点.在本地我能够设置它并且它工作正常,但我不确定如何在 Heroku 服务器上设置它.我阅读了一些关于 buildpacks 的内容,并找到了适用于 ChromeDriver 的 buildpack:
So I have a Flask server on Heroku which has been working fine as expected for some time.Now, as per new requirements, I need to add functionality to the Flask server to fetch a page from an external website.Because of reasons best known to me, I am using Selenium along with Chrome web driver to do this.Locally I was able to set this up and it works fine but I am quite unsure as to how to set it up on the Heroku server. I read a bit about buildpacks and found this buildpack for ChromeDriver :
https://elements.heroku.com/buildpacks/jimmynguyc/heroku-buildpack-chromedriver
但是,我不知道如何进一步进行.如何安装 Chrome 浏览器本身以及还需要什么来绑定它?
However, I am not sure how to proceed further.How do I install chromium browser itself and what else is needed to tie it all up ?
推荐答案
我遇到了同样的问题,以下步骤对我来说效果很好:
I had the same issue and the following steps worked fine for me:
- 我在 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/bin/chromedriver.
在我的python文件中,我配置了chromedriver:
- I added the following buildpacks on heroku: https://github.com/heroku/heroku-buildpack-xvfb-google-chrome (to install chrome, since chromedriver requires it) and https://github.com/heroku/heroku-buildpack-chromedriver.
- I created an environment variable GOOGLE_CHROME_BIN, with the path of chrome on heroku: /app/.apt/usr/bin/google-chrome and an environment variable called CHROMEDRIVER_PATH with the path of chromedriver on heroku: /app/.chromedriver/bin/chromedriver.
In my python file, I configured 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 为我解决了问题).
(First, I tried to configure chromedriver with no arguments, but I faced the following error: "Chrome failed to start: crashed". --disable-gpu and --no-sandbox solved the problem for me).
这篇关于在 Heroku 上使用 Python selenium 运行 ChromeDriver的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!