SOCKS-ruting i aiohttp med aiohttp-socks
Bruk en kompatibel SOCKS-bevisst connector i stedet for å kopiere et gammelt aiohttp-proxyeksempel med fjernede connector-klasser.
aiohttp dokumenterer HTTP-proxystøtte gjennom forespørselsvalgene. Et SOCKS-endepunkt trenger en implementasjon som snakker SOCKS. Å endre porten til en proxy-URL til 1080 gir ikke den implementasjonen.
Inne i en async-funksjon bruker du connectoren som det vedlikeholdte aiohttp-socks-prosjektet tilbyr:
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()Dette forutsetter at connector-pakken allerede er tilgjengelig og kompatibel med aiohttp-versjonen i applikasjonen. Endepunktet er illustrativt; SOCKS5-proxylisten tilbyr offentlige kandidater for connector-URL-en. Konfigurer retningslinjer for tidsavbrudd og svarlengde for den faktiske arbeidsmengden.
Gamle svar viser til forskjellige pakker og connectornavn: aiosocks, aiosocksy og aiohttp-socks er ikke utskiftbare importstier. Les kravene og eksempelet for pakken som faktisk brukes. Å kombinere klassen fra ett prosjekt med argumentene fra et annet kan feile før det i det hele tatt forsøkes en proxyforbindelse.
Hold connectoren og levetiden til sesjonen sammen, og kontroller vertsnavnoppslag der det betyr noe. Å sende en SOCKS-URL til et urelatert HTTP-proxyvalg er ikke en erstatning for connectorens dokumenterte rute.