Как я могу использовать undetected_chromedriver для функции __init__?Python

Программы на Python
Anonymous
Как я могу использовать undetected_chromedriver для функции __init__?

Сообщение Anonymous »

У меня есть проект, в котором мне нужно написать много кода, поэтому я пытаюсь разбить свой код на модули и пакеты, где у вас есть файл Python init и еще много чего.
Когда я попробовал это с обычным веб-драйвером Selenium, все сработало успешно. Но когда я переключился на selenium undetected_chromedriver, он все еще работал, но также выдавал огромную стену ошибок. Я также хочу, чтобы он открывался в режиме инкогнито с использованием класса, но как бы я ни старался, я так и не смог понять, как это сделать
Вот мой код. У меня есть каталог с именем «WEBTEST», который включает файл Python с именем «init» и «web_file». Вот код внутри «web_file» для обычного веб-драйвера Selenium
from selenium import webdriver
import time
import os

class WEB(webdriver.Chrome):
def __init__(self, driver_path=r"C:\Desktop"):
self.driver_path = driver_path
os.environ['PATH'] += self.driver_path
super().__init__()

def land_URL(self):
self.get('https://google.com/')

И у меня есть этот файл Python «бота» вне этого каталога для вызова приведенного выше кода
from WEBTEST.web_file import WEB
import time

with WEB() as w:
w.land_URL()
time.sleep(2)
w.quit()

Это сработало успешно. Затем, когда я переключился на undetected_chromedriver, вот так:
import undetected_chromedriver as uc
import time
import os

class WEB(uc.Chrome):
def __init__(self, driver_path=r"C:\Desktop"):
self.driver_path = driver_path
os.environ['PATH'] += self.driver_path
super().__init__()

def land_URL(self):
self.get('https://google.com/')

Это работало, но также выдавало стену ошибок.
Traceback (most recent call last):
File "C:\Python\ProjectWeb\bot.py", line 4, in
with WEB() as w:
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\site-packages\undetected_chromedriver\__init__.py", line 795, in __exit__
self.service.stop()
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\common\service.py", line 145, in stop
self.send_remote_shutdown_command()
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\common\service.py", line 124, in send_remote_shutdown_command
request.urlopen(f"{self.service_url}/shutdown")
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\urllib\request.py", line 216, in urlopen
return opener.open(url, data, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\urllib\request.py", line 519, in open
response = self._open(req, data)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\urllib\request.py", line 536, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\urllib\request.py", line 496, in _call_chain
result = func(*args)
^^^^^^^^^^^
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\urllib\request.py", line 1377, in http_open
return self.do_open(http.client.HTTPConnection, req)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\urllib\request.py", line 1352, in do_open
r = h.getresponse()
^^^^^^^^^^^^^^^
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 1375, in getresponse
response.begin()
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 318, in begin
version, status, reason = self._read_status()
^^^^^^^^^^^^^^^^^^^
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\http\client.py", line 279, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\AppData\Local\Programs\Python\Python311\Lib\socket.py", line 706, in readinto
return self._sock.recv_into(b)
^^^^^^^^^^^^^^^^^^^^^^^
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

Помогите, пожалуйста, как это исправить, а также как добавить для него режим инкогнито? Продолжая использовать класс?
--------edit-----------
Итак, я попробовал Seleniumbase, я создал этот каталог, который включал «init» и «тестовый» файл Python, и это код в «тестовом» файле Python:
from seleniumbase import Driver

class web():
def __init__(self, uc=True, incognito=True):
self.driver = Driver(uc=True, incognito=True)

def land_url(self):
self.get('https://www.google.com/')

А вот код файла Python «бота», который находится за пределами этого каталога, чтобы вызвать его как модуль
from directory.test import web
x = web()
x.land_url()


Подробнее здесь: https://stackoverflow.com/questions/764 ... t-function

Вернуться в «Python»