Fyrir eina ósamstillta beiðni gegnum HTTP-proxy án auðkenningar skaltu halda leiðinni á session.get(). Bættu aiohttp við verkefnið ef þarf:

uv add aiohttp

Skiptu út skjölunarfanginu hér að neðan fyrir þinn HTTP-hlustanda eða valkost af listanum yfir HTTP-proxy-þjóna. Hann verður að leyfa CONNECT að HTTPS-áfangastaðnum; endapunktur sem aðeins styður SOCKS þarf viðeigandi tengil í stað þessa proxy viðfangs.

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

Beiðnin prentar HTTP-stöðu sína og fyrstu 200 stafi svartextans. 403 eða 429 er enn svar sem hægt er að skoða hér; kallaðu á response.raise_for_status() ef forritið á að breyta misheppnuðum stöðum í undantekningar. Ósamstilltir samhengisstjórar loka setunni og svarinu þegar blokkum þeirra lýkur, líka við undantekningu.

15 sekúndna total tíminn nær yfir beiðniaðgerðina. 5 sekúndna connect tíminn felur í sér bið eftir lausri tengingu úr safninu, svo upptekið safn getur notað hann áður en nýr sökkull opnast. Þessi munur skiptir máli þegar eina kallið er aðlagað að samtímis athugunum.

trust_env=False heldur sýndri leið skýrri. aiohttp finnur ekki sjálfgefið proxy-umhverfisbreytur; að flytja eina út í öðrum tengigli stillir ekki þetta kall. Veldu trust_env=True aðeins þegar erfða umhverfi ferlisins er fyrirhuguð leiðingarstefna.

Tengdir greinar