首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在heroku上使用Scrapy硒中间件

在heroku上使用Scrapy硒中间件
EN

Stack Overflow用户
提问于 2020-05-14 01:55:32
回答 1查看 343关注 0票数 0

我正在使用scrapy https://pypi.org/project/scrapy-selenium/来驱动我的蜘蛛,并将它托管在Heroku上。我面临的挑战是,我似乎无法解决如何配置路径以找到chromedriver和heroku运行该应用程序所需的铬二进制文件的问题。

我已经安装了我的环境并安装了构建包。

BuildPacks

代码语言:javascript
复制
$ heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-chromedriver
$ heroku buildpacks:add --index 2 https://github.com/heroku/heroku-buildpack-google-chrome

环境在heroku配置变量中的设置

代码语言:javascript
复制
GOOGLE_CHROME_PATH = '/app/.apt/usr/bin/google_chrome'
CHROMEDRIVER_PATH = '/app/.chromedriver/bin/chromedriver'

现在我迷路的地方是如何配置上面的设置,以便在我的蜘蛛的settings.py文件中使用这个选项。

代码语言:javascript
复制
SELENIUM_DRIVER_NAME = 'firefox'
SELENIUM_DRIVER_EXECUTABLE_PATH = which('geckodriver')
SELENIUM_DRIVER_ARGUMENTS=['-headless'] # '--headless' if using chrome instead of firefox

通过使用这个设置,它在我的本地机器上工作得很好。

代码语言:javascript
复制
chrome_path = "/Users/username/chromepath/chromedriver"

SELENIUM_DRIVER_NAME = 'chrome' # Change to your browser name
SELENIUM_DRIVER_EXECUTABLE_PATH = chrome_path
SELENIUM_DRIVER_ARGUMENTS=['--headless']  # '--headless' if using chrome instead of firefox

我在互联网上找到了一些解决方案,但只有当我使用webdriver来获得请求时,它们才会起作用。

代码语言:javascript
复制
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)

因此,我现在的问题是如何在heroku上设置scrapy-selenium路径来处理我的环境。

EN

回答 1

Stack Overflow用户

发布于 2020-09-19 03:33:21

我相信你可能已经解决了这个问题,但是为了另一个可能正在寻找这个解决方案的人。

代码语言:javascript
复制
import os

CHROMEDRIVER_PATH = '/app/.chromedriver/bin/chromedriver'

SELENIUM_DRIVER_NAME = 'chrome'

SELENIUM_DRIVER_EXECUTABLE_PATH = CHROMEDRIVER_PATH 

SELENIUM_DRIVER_ARGUMENTS=['--headless', "--no-sandbox", "--disable-gpu", "--disable-dev-shm-usage"]

SELENIUM_BROWSER_EXECUTABLE_PATH = os.environ.get("GOOGLE_CHROME_BIN", "chromedriver")

此设置成功地部署了我的selenium_scrapy脚本。但该死的,我在这次修复之前受了苦。干杯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61787960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档