Развертывание кода Django (который нуждается в Selenium) для героки - Python - PullRequest
0 голосов
/ 20 мая 2019

У меня есть веб-сайт, созданный с использованием Django, нажатие кнопки на веб-сайте запускает скребок.Этот скребок использует селен.Я добавил следующие два пакета сборки, необходимые для селена, в мое приложение heroku:

1) https://github.com/heroku/heroku-buildpack-chromedriver

2) https://github.com/heroku/heroku-buildpack-google-chrome

chrome_options = webdriver.ChromeOptions()
chrome_options.binary_location='/app/.apt/usr/bin/google-chrome'
os.environ.get("GOOGLE_CHROME_BIN", "chromedriver")
browser=webdriver.Chrome(executable_path=os.environ.get("GOOGLE_CHROME_BIN", "chromedriver"),chrome_options=chrome_options)

Но все же ононе удается найти chromedriver и выбрасывает ошибку chromedriver должен быть в PATH, как решить эту проблему?Где находится исполняемый файл chromedriver?

1 Ответ

1 голос
/ 18 июня 2019

Я хотел бы прокомментировать вам ссылку, где я ранее отвечал на этот вопрос, но мне не хватает представителя, чтобы комментировать, так что, в любом случае, вы идете ..

Установите следующий путь, используя команду heroku congfig:set

heroku config:set CHROMEDRIVER_PATH=/app/.chromedriver/bin/chromedriver и heroku config:set GOOGLE_CHROME_BIN=/app/.apt/usr/bin/google-chrome

Проверьте пути, используя команду heroku config

Этот фрагмент можно использовать для настройки определения

.
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def load_chrome_driver(proxy):

      options = Options()

      options.binary_location = os.environ.get('GOOGLE_CHROME_BIN')

      options.add_argument('--headless')
      options.add_argument('--disable-gpu')
      options.add_argument('--no-sandbox')
      options.add_argument('--remote-debugging-port=9222')
      options.add_argument('--proxy-server='+proxy)

      return webdriver.Chrome(executable_path=str(os.environ.get('CHROMEDRIVER_PATH')), chrome_options=options)

Я использую прокси, но вы, вероятно, можете этого избежать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...