#python #selenium #web-scraping #selenium-chromedriver #undetected-chromedriver
Вопрос:
После использования Selenium я решил попробовать undetected-chromedriver
, поэтому установил его с помощью
pip install undetected-chromedriver
Однако, запустив этот простой скрипт
import undetected_chromedriver.v2 as uc
options = uc.ChromeOptions()
options.add_argument('--no-sandbox')
driver = uc.Chrome(options=options)
with driver:
driver.get('https://google.com')
выдает ошибку
селен.общие.исключения.Исключение WebDriverException: Сообщение: неизвестная ошибка: не удается подключиться к chrome в 127.0.0.1:37541 из chrome недоступен
Нет никаких проблем с использованием обычного селена
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument("--no-sandbox"); # Bypass OS security model
driver = webdriver.Chrome(options=options)
with driver:
driver.get('https://google.com')
Вот обратная связь
Traceback (most recent call last):
File "/root/test-bot/src/test.py", line 6, in <module>
driver = uc.Chrome()
File "/root/anaconda3/envs/test/lib/python3.9/site-packages/undetected_chromedriver/v2.py", line 302, in __init__
super(Chrome, self).__init__(
File "/root/anaconda3/envs/test/lib/python3.9/site-packages/selenium/webdriver/chrome/webdriver.py", line 69, in __init__
super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
File "/root/anaconda3/envs/test/lib/python3.9/site-packages/selenium/webdriver/chromium/webdriver.py", line 93, in __init__
RemoteWebDriver.__init__(
File "/root/anaconda3/envs/test/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 248, in __init__
self.start_session(capabilities, browser_profile)
File "/root/anaconda3/envs/test/lib/python3.9/site-packages/undetected_chromedriver/v2.py", line 577, in start_session
super(Chrome, self).start_session(capabilities, browser_profile)
File "/root/anaconda3/envs/test/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 339, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/root/anaconda3/envs/test/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 400, in execute
self.error_handler.check_response(response)
File "/root/anaconda3/envs/test/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py", line 236, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:52681
from chrome not reachable
(Driver info: chromedriver=2.41.578700 (2f1ed5f9343c13f73144538f15c00b370eda6706),platform=Linux 5.11.0-18-generic x86_64)
Есть какие-нибудь предложения?
Попытка № 1
Also tried setting the executable_path
to /usr/bin/chromedriver
import undetected_chromedriver.v2 as uc
options = uc.ChromeOptions()
options.add_argument('--no-first-run --no-service-autorun --password-store=basic')
CHROME_DRIVER_PATH = '/usr/bin/chromedriver'
driver = uc.Chrome(executable_path=CHROME_DRIVER_PATH, options=options)
with driver:
driver.get('https://google.com')
which gives the same error
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:42305
from chrome not reachable
Checked that the path does exists
# ll /usr/bin/chromedriver
-rwxr-xr-x 1 root root 8298464 Oct 1 14:19 /usr/bin/chromedriver*
Попытка № 2
Попробовал использовать Xvfb и отключить безголовый режим
import undetected_chromedriver.v2 as uc
from xvfbwrapper import Xvfb
vdisplay = Xvfb(width=800, height=1280)
vdisplay.start()
options = uc.ChromeOptions()
options.add_argument('--no-first-run --no-service-autorun --password-store=basic')
options.user_data_dir = f'./tmp/test_undetected_chromedriver'
options.add_argument(f'--disable-gpu')
options.add_argument(f'--no-sandbox')
options.add_argument(f'--disable-dev-shm-usage')
CHROME_DRIVER_PATH = '/usr/bin/chromedriver'
driver = uc.Chrome(executable_path=CHROME_DRIVER_PATH, options=options, headless=False)
with driver:
driver.get('https://google.com')
print(driver.title)
немного другая ошибка
селен.общие.исключения.Исключение WebDriverException: Сообщение: неизвестная ошибка: не удается подключиться к chrome в 127.0.0.1:42467 из-за неизвестной ошибки: не удается обнаружить открытые страницы (Информация о драйвере: chromedriver=2.41.578700 (2f1ed5f9343c13f73144538f15c00b370eda6706),платформа=Linux 5.11.0-18-generic x86_64)
Комментарии:
1. Попробуйте настроить ведение журнала для вашего водителя и найдите там подсказку.
Ответ №1:
удалите все, что есть в профиле path.it работает на меня