SOCKS smerovanie v aiohttp s aiohttp-socks
Použite kompatibilný konektor s podporou SOCKS namiesto kopírovania starého príkladu proxy v aiohttp s odstránenými triedami konektora.
aiohttp dokumentuje podporu HTTP proxy prostredníctvom možností požiadavky. Koncový bod SOCKS potrebuje implementáciu, ktorá hovorí SOCKS. Zmena portu URL proxy na 1080 túto implementáciu nezabezpečí.
Vnútri async funkcie použite konektor, ktorý poskytuje udržiavaný 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 predpokladá, že balík konektora je už dostupný a kompatibilný s verziou aiohttp v aplikácii. Koncový bod je ilustratívny; zoznam proxy SOCKS5 ponúka verejných kandidátov pre URL konektora. Pre skutočnú záťaž nastavte zásady časového limitu a veľkosti odpovede.
Staré odpovede odkazujú na rôzne balíky a názvy konektorov: aiosocks, aiosocksy a aiohttp-socks nie sú zameniteľné cesty importu. Prečítajte si požiadavky a príklad pre balík, ktorý sa skutočne používa. Kombinácia triedy jedného projektu s argumentmi iného môže zlyhať ešte pred pokusom o akékoľvek proxy pripojenie.
Držte konektor a životnosť relácie spolu a tam, kde na tom záleží, skontrolujte správanie prekladu názvov hostiteľov. Odovzdanie URL SOCKS nesúvisiacej možnosti HTTP proxy nenahrádza dokumentovanú cestu konektora.