aiohttp documenta el suport de proxy HTTP a través de les seves opcions de petició. Un punt final SOCKS necessita una implementació que parli SOCKS. Canviar el port de l'URL del proxy a 1080 no proporciona aquesta implementació.

Dins d'una funció async, feu servir el connector que ofereix el projecte mantingut 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()

Això assumeix que el paquet del connector ja està disponible i és compatible amb la versió d'aiohttp de l'aplicació. El punt final és il·lustratiu; la llista de proxys SOCKS5 ofereix candidats públics per a l'URL del connector. Configureu la política de temps d'espera i de mida de resposta per a la càrrega real.

Les respostes antigues es refereixen a paquets i noms de connectors diferents: aiosocks, aiosocksy i aiohttp-socks no són rutes d'importació intercanviables. Llegiu els requisits i l'exemple del paquet que realment es fa servir. Combinar la classe d'un projecte amb els arguments d'un altre pot fallar abans que es provi cap connexió de proxy.

Manteniu el connector i la vida de la sessió junts, i comproveu el comportament de resolució de noms d'amfitrió on sigui important. Passar una URL SOCKS a una opció de proxy HTTP no relacionada no substitueix la ruta documentada del connector.

Articles relacionats