Маршрутызацыя SOCKS у aiohttp з aiohttp-socks
Выкарыстоўвайце сумяшчальны канэктар з падтрымкай SOCKS, а не капіруйце стары прыклад проксі aiohttp з выдаленымі класамі канэктара.
aiohttp дакументуе падтрымку HTTP-проксі праз параметры запыту. Канечная кропка SOCKS патрабуе рэалізацыі, якая размаўляе на SOCKS. Змена порта URL проксі на 1080 не дае такой рэалізацыі.
Унутры async-функцыі выкарыстоўвайце канэктар, які пастаўляецца падтрымліваным праектам 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()Гэта мяркуе, што пакет канэктара ўжо даступны і сумяшчальны з версіяй aiohttp у праграме. Канечная кропка ілюстрацыйная; спіс проксі SOCKS5 прапануе публічныя кандыдаты для URL канэктара. Наладзьце палітыку тайм-аўту і памеру адказу для рэальнай працы.
Старыя адказы спасылаюцца на розныя пакеты і імёны канэктараў: aiosocks, aiosocksy і aiohttp-socks не з'яўляюцца ўзаемазаменнымі шляхамі імпарту. Чытайце патрабаванні і прыклад для пакета, які фактычна выкарыстоўваецца. Спалучэнне класа аднаго праекта з аргументамі іншага можа не ўдацца яшчэ да спробы падключэння да проксі.
Трымайце канэктар і час жыцця сесіі разам і правярайце паводзіны развязання імёнаў хастоў там, дзе гэта важна. Перадача URL SOCKS у незвязаную опцыю HTTP-проксі не замяняе дакументаваны шлях канэктара.