не удается заставить selenium webdriver работать в лазурных модулях данных

У нас есть несколько скриптов на Python, которые очищают веб-сайты и хорошо работают. Теперь мы хотим сделать это в Azure Databricks. Мы думали, что у нас есть решение сделать это в следующем сообщении на форуме Databricks, но, к сожалению, это не работает. (https://forums.databricks.com/questions/15480/how-to-add-webdriver-for-selenium-in-databricks.html?childToView=21347#answer-21347)

Ошибка, которую мы получаем после запуска последнего бита кода: WebDriverException: сообщение: неизвестная ошибка: не удается найти двоичный файл Chrome (информация о драйвере: chromedriver = 73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72), platform = Linux 4.15.0-1050-azure x86_64)

Последний фрагмент кода выглядит так:

    %py

    from selenium import webdriver

    chrome_options = webdriver.ChromeOptions()

    chrome_options.add_argument('--no-sandbox')

    chrome_options.add_argument('--headless')

    chrome_options.add_argument('--disable-dev-shm-usage')

    chrome_driver = "/tmp/chromedriver/chromedriver"

    driver = webdriver.Chrome(chrome_driver, 
    chrome_options=chrome_options)

    driver.get("https://www.google.com")

Я нашел сообщение, в котором мне нужно указать расположение двоичного файла: Selenium дает selenium.common.exceptions.WebDriverException: сообщение: неизвестная ошибка: не удается найти двоичный файл Chrome на Mac

    options.binary_location = "/Applications/Google 
    Chrome.app/Contents/MacOS/Google Chrome"

Но я не знаю, где находится этот двоичный файл в Azure Databricks.


person jbazelmans    schedule 12.09.2019    source источник
comment
Даже я также получаю сообщение о проблеме WebDriverException: Сообщение: исполняемый файл chromedriver должен находиться в PATH. См. sites.google.com/a/chromium.org/chromedriver/home < / а>   -  person Mohan Parashetti    schedule 21.04.2021


Ответы (1)


Что ж, у меня все заработало после небольшого изменения исходного сценария

    %sh /databricks/python3/bin/pip3 install selenium
    ==================
    %sh
    wget      
    https://chromedriver.storage.googleapis.com/73.0.3683.68/chromedriver_linux64.zip 
    -O /tmp/chromedriver_linux64.zip
    ==================
    %sh mkdir /tmp/chromedriver
    ================
    %sh
    unzip /tmp/chromedriver_linux64.zip -d /tmp/chromedriver/
    ==================
    %sh
    sudo add-apt-repository ppa:canonical-chromium-builds/stage
    ===================
    %sh
    /usr/bin/yes | sudo apt update
    ===================
    %sh
    /usr/bin/yes | sudo apt install chromium-browser
    ===================
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-dev-shm-usage')
    chrome_driver = "/tmp/chromedriver/chromedriver"
    driver = webdriver.Chrome(chrome_driver,chrome_options=chrome_options)
    driver.get("https://www.google.com")

Этот скрипт загрузил и обновил хром до версии 77. В то время как chromedriver был 73. Изменение ссылки для загрузки chromedriver 77 помогло.

    wget 
    https://chromedriver.storage.googleapis.com/77.0.3865.40/chromedriver_linux64.zip 
person jbazelmans    schedule 13.09.2019
comment
Как вы добавили Chromedriver в PATH в Databricks? Я получаю сообщение об ошибке WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home - person jeppoo1; 02.10.2020