WebDriverException: Сообщение: Служба / содержимое / chromedriver неожиданно завершены.Код состояния был: -6 с ChromeDriver Google Colab и Selenium - PullRequest
0 голосов
/ 29 ноября 2018

Я пытался запустить браузер безголового Chrome, используя селен для очистки содержимого из Интернета.Я установил безголовый Chrome с помощью wget, а затем распаковал его в свою текущую папку.

!wget "http://chromedriver.storage.googleapis.com/2.25/chromedriver_linux64.zip"
!unzip chromedriver_linux64.zip

Теперь, когда я загружаю драйвер

from selenium.webdriver.chrome.options import Options
import os
# instantiate a chrome options object so you can set the size and headless preference
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=1920x1080")

chrome_driver = os.getcwd() +"/chromedriver"
driver = webdriver.Chrome(chrome_options=chrome_options,executable_path=chrome_driver)

Я получаю ошибку

WebDriverException                        Traceback (most recent call last)
<ipython-input-67-0aeae0cfd891> in <module>()
----> 1 driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=chrome_driver)
  2 driver.get("https://www.google.com")
  3 lucky_button = driver.find_element_by_css_selector("[name=btnI]")
  4 lucky_button.click()
  5 /usr/local/lib/python3.6/dist-packages/selenium/webdriver/chrome/webdriver.py in __init__(self, executable_path, port, chrome_options, service_args, desired_capabilities, service_log_path)
 60             service_args=service_args,
 61             log_path=service_log_path)
---> 62         self.service.start()
 63 
 64         try:

 /usr/local/lib/python3.6/dist-packages/selenium/webdriver/common/service.py in start(self)
 84         count = 0
 85         while True:
 ---> 86             self.assert_process_still_running()
 87             if self.is_connectable():
 88                 break

 /usr/local/lib/python3.6/dist-packages/selenium/webdriver/common/service.py in assert_process_still_running(self)
 97             raise WebDriverException(
 98                 'Service %s unexpectedly exited. Status code was: %s'
 ---> 99                 % (self.path, return_code)
100             )
101 

WebDriverException: Message: Service /content/chromedriver unexpectedly exited. Status code was: -6

Любая помощь будет принята с благодарностью.

Хорошо, поэтому после некоторого исследования я попробовал другой способ

!apt install chromium-chromedriver
import selenium as se

options = se.webdriver.ChromeOptions()
options.add_argument('headless')

driver = se.webdriver.Chrome(chrome_options=options)

В Google Colab, который снова выдает мне ту же ошибку

WebDriverException: Message: Service chromedriver unexpectedly exited. Status code was: -6

Ответы [ 3 ]

0 голосов
/ 29 ноября 2018

Это может не помочь вам напрямую.Но если в конце концов вы не можете установить Chrome + селен, вы все равно можете использовать phantomjs + selenium.Как этот блокнот:

https://colab.research.google.com/drive/1V62zhjw2V5buxdN1s9mqkLzh3FWqSq8S

Но я бы предпочел Chrome, если это возможно.

0 голосов
/ 03 декабря 2018

Я нашел ответ на вопрос о том, почему я получаю ошибку.Пожалуйста, установите chromium-chromedriver и добавьте его в переменную path, а также в каталог bin.Это полное решение проблемы «как очистить данные с помощью селена на колабе».Есть еще один метод с использованием PhantomJS, но этот API устарел из-за селена, и, надеюсь, он удалит его в следующем обновлении селена.

# install chromium, its driver, and selenium
!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin
!pip install selenium
# set options to be headless, ..
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
# open it, go to a website, and get results
wd = webdriver.Chrome('chromedriver',options=options)
wd.get("https://www.website.com")
print(wd.page_source)  # results

Это будет работать для всех, кто хочет почистить свои данные на Google Colab, а не на вашем локальном компьютере.Пожалуйста, выполните шаги, как показано последовательно в том же порядке.Вы можете найти тетрадь здесь https://colab.research.google.com/drive/1GFJKhpOju_WLAgiVPCzCGTBVGMkyAjtk.

0 голосов
/ 29 ноября 2018

Это сообщение об ошибке ...

WebDriverException: Message: Service /content/chromedriver unexpectedly exited. Status code was: -6

... означает, что ChromeDriver неожиданно завершился.

Ваша главная проблема - несовместимость между версиями двоичных файлов, которые вы используете, следующим образом:

Поддержка Chrome v53-55

  • Хотя вы не упомянули версию Chrome Browser , ожидается, что вы используетеодин из последних Chrome Browser выпусков.

Таким образом, существует явное несоответствие между ChromeDriver v2.33 и недавно выпущенным Chrome Browser версий.

Решение


Обновление

Я не уверен насчет google-colaboratory.Суть в том, что вы должны использовать соответствующую версию ChromeDriver по отношению к преобладающей версии установленной версии Google Chrome .

Однако вам нужно найти способсначала установить Chrome или Chromium на Colab.Затем вы можете использовать !wget и !unzip до , загрузить , распаковать и начать использовать соответствующий ChromeDriver версия.

Вы можете найти обсуждение совместимости между ChromeDriver и Chrome Browser в этом обсуждении

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