Запускаю браузер через playwright async def start_browser(self): """Запуск браузера и установка контекста с ******""" self.playwright = await async_playwright().start() # Применение ****** при запуске браузера launch_options = {} if self.proxy: launch_options["proxy"] = { "server": f"http://{self.ip}:{self.port}", # ******-сервер "username": self.username, # Логин для ****** "password": self.password, # Пароль для ****** } print(f"✅ ****** {self.proxy} успешно установлен") self.browser = await self.playwright.chromium.launch(headless=False, **launch_options) self.context = await self.browser.new_context() Python async def start_browser(self): """Запуск браузера и установка контекста с ******""" self.playwright = await async_playwright().start() # Применение ****** при запуске браузера launch_options = {} if self.proxy: launch_options["proxy"] = { "server": f"http://{self.ip}:{self.port}", # ******-сервер "username": self.username, # Логин для ****** "password": self.password, # Пароль для ****** } print(f"✅ ****** {self.proxy} успешно установлен") self.browser = await self.playwright.chromium.launch(headless=False, **launch_options) self.context = await self.browser.new_context() На этом моменте, если ****** невалидный, то у меня крашится браузер, если валдиный - то запускается, и на 2ip показывает, что ****** установлен (так что все окей) У меня реализована функция отправки запроса через js-код прямо внутри браузера (то есть исполняем в браузере в консоли). @call_with_retry async def execute(self, expression: str, payload: dict = None): try: if payload is not None: response = await asyncio.wait_for( self.browser_manager.page.evaluate(expression, payload), timeout=self.time_out ) else: response = await asyncio.wait_for( self.browser_manager.page.evaluate(expression), timeout=self.time_out ) except asyncio.TimeoutError: raise TimeoutError(f"Запрос превысил лимит в {self.time_out} секунд") log(f"➡Сделали запрос➡") sleep_time = random.uniform(1, 2) # Генерируем случайное время от 1 до 3 секунд log(f"Спим {sleep_time:.2f} секунд после выполнения запроса") await asyncio.sleep(sleep_time) # Спим случайное количество секунд return response Python @call_with_retry async def execute(self, expression: str, payload: dict = None): try: if payload is not None: response = await asyncio.wait_for( self.browser_manager.page.evaluate(expression, payload), timeout=self.time_out ) else: response = await asyncio.wait_for( self.browser_manager.page.evaluate(expression), timeout=self.time_out ) except asyncio.TimeoutError: raise TimeoutError(f"Запрос превысил лимит в {self.time_out} секунд") log(f"➡Сделали запрос➡") sleep_time = random.uniform(1, 2) # Генерируем случайное время от 1 до 3 секунд log(f"Спим {sleep_time:.2f} секунд после выполнения запроса") await asyncio.sleep(sleep_time) # Спим случайное количество секунд return response Мне казалось, что очевидно, что этот запрос тоже через ****** пойдет, и по другому никак (у меня по сути программа работает таким образом, что браузер просто запущен на одной странице, которая даже не обновляется, и вся работа идет через опрокидку этих запросов) Скажите, пожалуйста, запрос ведь должен идти через ****** по логике?
отправь запрос из консоли на http://ip-api.com/json и глянь айпи в ответе. так и узнаешь применяется ли ****** на такие запросы