SOCKS-ruting i aiohttp med aiohttp-socks
Bruk ein kompatibel SOCKS-medviten connector i staden for å kopiere eit gamalt aiohttp-proxyeksempel med fjerna connector-klassar.
aiohttp dokumenterer HTTP-proxystøtte gjennom førespurnadsvala. Eit SOCKS-endepunkt treng ei implementering som snakkar SOCKS. Å endre porten til ein proxy-URL til 1080 gir ikkje den implementeringa.
Inne i ein async-funksjon brukar du connectoren som det vedlikehaldne 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 føreset at connector-pakken allereie er tilgjengeleg og kompatibel med aiohttp-versjonen i applikasjonen. Endepunktet er illustrativt; SOCKS5-proxylista tilbyr offentlege kandidatar for connector-URL-en. Konfigurer retningslinjer for tidsavbrot og svarlengd for den faktiske arbeidsmengda.
Gamle svar viser til ulike pakkar og connectornamn: aiosocks, aiosocksy og aiohttp-socks er ikkje utskiftbare importstiar. Les krava og eksempelet for pakken som faktisk blir brukt. Å kombinere klassen frå eitt prosjekt med argumenta frå eit anna kan feile før det i det heile blir forsøkt ei proxyforbinding.
Hald connectoren og levetida til sesjonen saman, og kontroller vertsnamnoppslag der det betyr noko. Å sende ein SOCKS-URL til eit urelatert HTTP-proxyval er ikkje ei erstatning for den dokumenterte ruta til connectoren.