SOCKS рутирање во aiohttp со aiohttp-socks
Користете компатибилен конектор што поддржува SOCKS наместо да копирате стар пример за прокси во aiohttp со отстранети класи на конекторот.
aiohttp документира поддршка за HTTP прокси преку своите опции за барање. SOCKS крајната точка бара имплементација што зборува SOCKS. Менувањето на портата на URL-то на проксито на 1080 не ја обезбедува таа имплементација.
Внатре во async функција, користете го конекторот што го обезбедува одржуваниот проект aiohttp-socks:
import aiohttp
from aiohttp_socks import ProxyConnector
connector = ProxyConnector.from_url('socks5://203.0.113.10:1080')
async with aiohttp.ClientSession(connector=connector) as session:
async with session.get('https://example.com/') as response:
body = await response.read()Ова претпоставува дека пакетот на конекторот е веќе достапен и компатибилен со верзијата на aiohttp во апликацијата. Крајната точка е илустративна; списокот на SOCKS5 прокси нуди јавни кандидати за URL-то на конекторот. Конфигурирајте политика за временско ограничување и големина на одговор за вистинското оптоварување.
Старите одговори се однесуваат на различни пакети и имиња на конектори: aiosocks, aiosocksy и aiohttp-socks не се заменливи патеки за увоз. Прочитајте ги барањата и примерот за пакетот што навистина се користи. Комбинирањето на класа од еден проект со аргументи од друг може да не успее пред воопшто да се обиде прокси врска.
Држете го конекторот и животот на сесијата заедно и проверете го однесувањето при резолуција на имиња на домаќини каде што е важно. Предавањето на SOCKS URL на неповрзана опција за HTTP прокси не го заменува документираниот пат на конекторот.