Direcționare SOCKS în aiohttp cu aiohttp-socks
Folosiți un conector compatibil care înțelege SOCKS în loc să copiați un exemplu vechi de proxy aiohttp cu clase de conector eliminate.
aiohttp documentează suportul pentru proxy HTTP prin opțiunile sale de cerere. Un punct final SOCKS are nevoie de o implementare care vorbește SOCKS. Schimbarea portului unui URL de proxy în 1080 nu oferă acea implementare.
În interiorul unei funcții async, folosiți conectorul oferit de proiectul întreținut 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()Aceasta presupune că pachetul conectorului este deja disponibil și compatibil cu versiunea aiohttp din aplicație. Punctul final este ilustrativ; lista de proxy SOCKS5 oferă candidați publici pentru URL-ul conectorului. Configurați politica de expirare și de dimensiune a răspunsului pentru volumul real de lucru.
Răspunsurile vechi se referă la pachete și nume de conector diferite: aiosocks, aiosocksy și aiohttp-socks nu sunt căi de import interschimbabile. Citiți cerințele și exemplul pentru pachetul folosit efectiv. Combinarea clasei unui proiect cu argumentele altuia poate eșua înainte de orice încercare de conexiune proxy.
Țineți conectorul și durata de viață a sesiunii împreună și verificați comportamentul de rezolvare a numelor de gazdă acolo unde contează. Trecerea unui URL SOCKS către o opțiune de proxy HTTP fără legătură nu înlocuiește ruta documentată a conectorului.