RuntimeError: Этот пакет поддерживает только ошибки платформ Linux, MacOSX или Windows с ChromeDriver и Chrome через Selenium и Python - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь очистить веб-страницы с помощью модулей bs4 и chromedriver. Использование кода Visual Studio и Python 3.7.4. на Windows 10.

from selenium import webdriver
from bs4 import BeautifulSoup
import chromedriver

driver = webdriver.Chrome('path')
driver.get('https://webscraper.io/test-sites/e-commerce/allinone') ### (or any other website)

soup = bs.BeautifulSoup(driver.page_source, 'html.parser')

Это выдает мне RuntimeError "Этот пакет поддерживает только платформы Linux, MacOSX или Windows":

 File "c:/..../scraper.py", line 17, in <module>
   import chromedriver
 File "C:\......\Python\Python37\lib\site-packages\chromedriver\__init__.py", line 16, in <module>
   raise RuntimeError('This package supports only Linux, MacOSX or Windows platforms')
RuntimeError: This package supports only Linux, MacOSX or Windows platforms

Что может быть источник этой ошибки? Я видел подобные сообщения здесь (https://replit.canny.io/bug-reports/p/python-3-selenium), а также некоторые ответы о разработке модуля chromedriver.

Ответы [ 3 ]

2 голосов
/ 09 января 2020
from selenium.webdriver import Chrome
from bs4 import BeautifulSoup
driver = Chrome()
driver.get('https://webscraper.io/test-sites/e-commerce/allinone')
soup = BeautifulSoup(driver.page_source, 'html.parser')

вам не нужно импортировать chromedriver, так как он включен в селен.

2 голосов
/ 09 января 2020

Вам не нужно import chromedriver, удалите его. Вам просто нужно установить путь к chromedriver.exe при инициализации драйвера

driver = webdriver.Chrome(executable_path=chromedriver_path_to_chromedriver.exe)
0 голосов
/ 09 января 2020

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

   import chromedriver
 File "C:\......\Python\Python37\lib\site-packages\chromedriver\__init__.py", line 16, in <module>
   raise RuntimeError('This package supports only Linux, MacOSX or Windows platforms')
RuntimeError: This package supports only Linux, MacOSX or Windows platforms

... означает, что пакет chromedriver , который вы пытаетесь импортировать, поддерживает только Linux, MacOSX или Windows платформы и вкратце это означает, что не требуется .


Решение

Вы можете безопасно удалить import chromedriver, чтобы избавиться от этой ошибки.


Подробности

Для работы с ChromeDriver и Chrome вам необходимо загрузить соответствующую версию ChromeDriver двоичного файла с ChromeDriver Google Storage . Вы можете найти несколько подробных обсуждений в:

Далее вы размещаете ChromeDriver двоичный файл в любом месте вашей системы и абсолютный путь ChromeDriver через Ключ / Значение executable_path следующим образом:

from selenium import webdriver

driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
driver.get('https://webscraper.io/test-sites/e-commerce/allinone') ### (or any other website)

Обновление

Поскольку вы находитесь на , ваша строка кода будет:

driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get('https://webscraper.io/test-sites/e-commerce/allinone') ### (or any other website)

Если вы не используете клавишу / Значение пара executable_path, ваша Python программа будет искать chromedriver в вашей системе PATH и не может найти подходящий вариант chromedriver executetab но вы увидите ошибку:

WebDriverException: Message: 'Webdrivers' executable may have wrong permissions.

Соответствующее подробное обсуждение можно найти в Исполняемый файл 'Webdrivers' может иметь неправильные разрешения. Пожалуйста см. https://sites.google.com/a/chromium.org/chromedriver/home

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