2016-12-09 2 views
4

Итак, у меня есть сервер Flask на Heroku, который работает нормально, как ожидалось в течение некоторого времени. Теперь, согласно новым требованиям, мне нужно добавить функциональность на сервер Flask для извлечения страницы из внешний веб-сайт. Из-за самых известных мне причин, я использую Selenium вместе с веб-драйвером Chrome, чтобы сделать это. Обычно я смог установить это, и он отлично работает, но я совершенно не уверен, как настроить его на сервер Heroku. Я читал немного о buildpacks и нашел этот buildpack для ChromeDriver:Запуск ChromeDriver с Selenium Python на Heroku

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

Однако, я не уверен, как поступить further.How я устанавливаю сам хром браузер и что еще нужно, чтобы связать все это?

ответ

4

Я была такая же проблема, и следующие шаги работали отлично для меня:

  • я добавил следующие buildpacks на Heroku: https://github.com/heroku/heroku-buildpack-xvfb-google-chrome (установить хром, так как chromedriver требует) и https://github.com/heroku/heroku-buildpack-chromedriver.
  • Я создал переменную окружения GOOGLE_CHROME_BIN с дорожкой chrome на heroku: /app/.apt/usr/bin/google-chrome и переменную окружения CHROMEDRIVER_PATH с указанием пути хромированного ребра на герою: /app/.chromedriver/бен/chromedriver.
  • В моем файле питона, я настроил 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 решили проблему для меня).

Смежные вопросы