SOCKS směrování v aiohttp s aiohttp-socks
Použijte kompatibilní konektor s podporou SOCKS místo kopírování starého příkladu proxy v aiohttp s odstraněnými třídami konektoru.
aiohttp dokumentuje podporu HTTP proxy prostřednictvím možností požadavku. Koncový bod SOCKS potřebuje implementaci, která mluví SOCKS. Změna portu URL proxy na 1080 tuto implementaci nezajistí.
Uvnitř async funkce použijte konektor, který poskytuje udržovaný projekt 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()To předpokládá, že balíček konektoru je již dostupný a kompatibilní s verzí aiohttp v aplikaci. Koncový bod je ilustrativní; seznam proxy SOCKS5 nabízí veřejné kandidáty pro URL konektoru. Pro skutečnou zátěž nastavte zásady časového limitu a velikosti odpovědi.
Staré odpovědi odkazují na různé balíčky a názvy konektorů: aiosocks, aiosocksy a aiohttp-socks nejsou zaměnitelné cesty importu. Přečtěte si požadavky a příklad pro balíček, který se skutečně používá. Kombinace třídy jednoho projektu s argumenty jiného může selhat ještě před pokusem o připojení k proxy.
Držte konektor a životnost relace pohromadě a tam, kde na tom záleží, zkontrolujte chování překladu názvů hostitelů. Předání URL SOCKS nesouvisející možnosti HTTP proxy nenahrazuje dokumentovanou cestu konektoru.