aiohttp documenta o soporte de proxy HTTP a través das súas opcións de solicitude. Un punto final SOCKS necesita unha implementación que fale SOCKS. Cambiar o porto dun URL de proxy a 1080 non fornece esa implementación.

Dentro dunha función async, use o conector que fornece o proxecto mantido 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()

Isto supón que o paquete do conector xa está dispoñible e é compatible coa versión de aiohttp na aplicación. O punto final é ilustrativo; a lista de proxies SOCKS5 ofrece candidatos públicos para o URL do conector. Configure a política de tempo de espera e de tamaño de resposta para a carga real.

As respostas antigas refírense a paquetes e nomes de conector diferentes: aiosocks, aiosocksy e aiohttp-socks non son rutas de importación intercambiables. Lea os requisitos e o exemplo do paquete que se usa realmente. Combinar a clase dun proxecto cos argumentos doutro pode fallar antes de tentar calquera conexión de proxy.

Manteña o conector e a vida da sesión xuntos, e comprobe o comportamento de resolución de nomes de host onde importe. Pasar un URL SOCKS a unha opción de proxy HTTP non relacionada non substitúe a ruta documentada do conector.

Artigos relacionados