HTTP прокси аркылуу бир aiohttp сурамы
aiohttp менен текшерүүсүз HTTP прокси сурамын жөнөтүп, абалын текшериңиз да, ачык асинхрондуу жашоо циклинде аяктаңыз.
Текшерүүсүз HTTP прокси аркылуу бир асинхрондуу сурам үчүн жолду session.get() жеринде кармаңыз. Керек болсо долбоорго aiohttp кошуңуз:
uv add aiohttpТөмөнкү документтик даректи өз HTTP угуучуңузга же HTTP проксилердин тизмесиндеги талапкерге алмаштырыңыз. Ал HTTPS багытына CONNECT уруксат бериши керек; SOCKS гана колдогон чекитке бул proxy аргументинин ордуна ылайыктуу коннектор зарыл.
import asyncio
import aiohttp
async def main():
timeout = aiohttp.ClientTimeout(total=15, connect=5)
async with aiohttp.ClientSession(
timeout=timeout,
trust_env=False,
) as session:
async with session.get(
"https://example.com/",
proxy="http://203.0.113.10:8080",
) as response:
print(response.status)
print((await response.text())[:200])
asyncio.run(main())
Сурам HTTP абалын жана жооп текстинин алгачкы 200 белгисин чыгарат. 403 же 429 бул жерде текшерүүгө боло турган жооп бойдон калат; колдонмо ийгиликсиз абалдарды өзгөчө учурга айлантышы керек болсо response.raise_for_status() чакырыңыз. Асинхрондуу контекст башкаргычтары блоктор бүткөндө, өзгөчө учур болсо да, сессияны жана жоопту жабат.
15 секунддук total бюджети сурам аракетин камтыйт. 5 секунддук connect бюджетине пулдан жеткиликтүү туташуу күтүү да кирет, ошондуктан бош эмес пул аны жаңы сокет ачылганга чейин коротушу мүмкүн. Бир чакырууну бир убактагы текшерүүлөргө ылайыктоодо бул айырма маанилүү.
trust_env=False көрсөтүлгөн жолду ачык кармайт. aiohttp демейкиде прокси чөйрө өзгөрмөлөрүн таппайт; башка терминалда бирөөнү экспорттоо бул чакырууну жөндөбөйт. trust_env=True процесс мураска алган чөйрө көздөлгөн багыттоо саясаты болгондо гана тандалышы керек.