aiohttp dokumenterar HTTP-proxystöd via sina förfrågningsalternativ. En SOCKS-slutpunkt behöver en implementering som talar SOCKS. Att ändra porten i en proxy-URL till 1080 ger inte den implementeringen.

Inuti en async-funktion använder du den connector som det underhållna aiohttp-socks-projektet tillhandahåller:

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()

Detta förutsätter att connector-paketet redan är tillgängligt och kompatibelt med aiohttp-versionen i applikationen. Slutpunkten är illustrativ; SOCKS5-proxylistan erbjuder offentliga kandidater för connector-URL:en. Konfigurera policy för tidsgräns och svarsstorlek för den faktiska arbetsbelastningen.

Gamla svar hänvisar till olika paket och connectornamn: aiosocks, aiosocksy och aiohttp-socks är inte utbytbara importvägar. Läs kraven och exemplet för det paket som faktiskt används. Att kombinera en klass från ett projekt med ett annat projekts argument kan misslyckas innan ens ett proxyförsök görs.

Håll connectorn och sessionens livslängd tillsammans och kontrollera värdnamnsupplösning där det spelar roll. Att skicka en SOCKS-URL till ett orelaterat HTTP-proxyalternativ ersätter inte connectorns dokumenterade väg.

Relaterade artiklar