Net::SOCKS_CONNECTION_FAILED при маршрутизации запроса Pyppeteer через прокси-сервер SocksPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Net::SOCKS_CONNECTION_FAILED при маршрутизации запроса Pyppeteer через прокси-сервер Socks

Сообщение Anonymous »

Вот моя попытка создания минимального веб-скребка с использованием маршрутизации pyppeteer 1.0.2 через прокси-сервер Socks NordVPN:

Код: Выделить всё

import asyncio
from pyppeteer import launch

import json
import requests

res = requests.get('https://nordvpn.com/api/server')
servers = json.loads(res.content)
socks_servers = [server['ip_address'] for server in servers if server['features']['socks']]
socks_server = socks_servers[0]
port = '1080'

async def with_proxy():
browser = await launch(
executablePath='/usr/bin/google-chrome',
headless=True,
args=[f'--proxy-server=socks5://{socks_server}:{port}']
)

page = await browser.newPage()
await page.authenticate({
'username': username,
'password': password
})
await page.goto('https://api.myip.com')
await browser.close()

await with_proxy()
Однако это приводит к следующей ошибке:

Код: Выделить всё

---------------------------------------------------------------------------
PageError                                 Traceback (most recent call last)
Cell In[33], line 23
20     await page.goto('https://api.myip.com')
21     await browser.close()
---> 23 await with_proxy()

Cell In[33], line 20, in with_proxy()
15 # do not forget to put "await" before async functions
16 await page.authenticate({
17     'username': username,
18     'password': password
19 })
---> 20 await page.goto('https://api.myip.com')
21 await browser.close()

File /usr/local/lib/python3.11/site-packages/pyppeteer/page.py:831, in Page.goto(self, url, options, **kwargs)
829 result = await self._navigate(url, referrer)
830 if result is not None:
--> 831     raise PageError(result)
832 result = await watcher.navigationPromise()
833 watcher.cancel()

PageError: net::ERR_SOCKS_CONNECTION_FAILED at https://api.myip.com
В качестве теста я попробовал то же самое через собственную библиотеку запросов, и она, похоже, работала нормально:

Код: Выделить всё

import requests

def native_requests():
with requests.Session() as s:
s.headers['Connection'] = 'close'
prox = {'https':f'socks5://{username}:{password}@{socks_server}:{port}'}
r = s.get('https://api.myip.com', proxies=prox)
print(r)
s.close()

native_requests()
Это печатает , как и ожидалось. Что я здесь делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/779 ... ocks-proxy
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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