Heroku和Selenium Webdriver不能一起使用

时间:2019-01-02 22:48:11

标签: python selenium heroku webdriver hosting

我有一个烧瓶应用程序,我试图在heroku上托管。我正在使用硒从网站上获取数据。在本地,它运行完美,但是现在我正在尝试使用heroku进行部署,但遇到了重大问题。在我所做的一切之前,我只是指向了本地计算机上的webdriver的路径。现在,我正在使用这两个buildpack-https://github.com/heroku/heroku-buildpack-chromedriverhttps://github.com/heroku/heroku-buildpack-google-chrome。我不知道如何使它工作,但是这是我在另一个版本中找到的一些代码(它不起作用)-

chrome_options = Options()
        chrome_options.binary_location = os.environ['GOOGLE_CHROME_BIN']
        chrome_options.add_argument('--disable-gpu')
        chrome_options.add_argument('--no-sandbox')
        chrome_options.add_argument('-- headless')
        browser = webdriver.Chrome(executable_path= os.environ['CHROMEDRIVER_PATH, chrome_options=chrome_options'])

我不知道这是正确的还是接近它。

2 个答案:

答案 0 :(得分:0)

option = webdriver.ChromeOptions()

# You will need to specify the binary location for Heroku 
option.binary_location = os.getenv('GOOGLE_CHROME_BIN')

option.add_argument("--headless")
option.add_argument('--disable-gpu')
option.add_argument('--no-sandbox')
browser = webdriver.Chrome(executable_path=os.getenv('CHROME_EXECUTABLE_PATH'), options=option)

  1. 添加两个buildpack:
  2. 添加配置变量:
    • GOOGLE_CHROME_BIN = / app / .apt / usr / bin / google-chrome
    • CHROME_EXECUTABLE_PATH = / app / .chromedriver / bin / chromedriver

答案 1 :(得分:0)

我已经在heroku >> here

上发布了有关chromedriver使用的答案

不确定即使让chrome buildpack工作后,您是否仍将能够成功抓取数据。而是使用firefox buildpack。我建议这个buildpack

输入class EventSerializer < ActiveModel::Serializer attributes :id, :name, :event_sub_categories def event_sub_categories object.event_sub_categories.map do |sub_category| EventSubCategorySerializer.new(sub_category) end end end