Integrációk · Kezdő szint

Hogyan használjunk proxyt Python kérésekkel, httpx-szel és aiohttp-vel

Három sor konfiguráció könyvtáronként, majd ugyanaz a felhasználónév szintaxis mindenhol: ország, város és munkamenet él a proxy URL-ben, így egy átjáró szolgálja ki az összes feladatot.

3 perc olvasás 6 szakasz Áttekintés A szerkesztői csapat Proxy Cyber

A proxy URL-je#

A Proxy Cyber-val az URL tartalmazza a hitelesítő adatokat és a kulcsot, amivel elérhetjük a szerverünket. Célzási paraméterek A felhasználónévben; a hostnév az átjáró és a port választja ki a protokollt.

Proxy URL-ek
# Rotating: a new United States household on every new connection
http://USER-cc-us:PASS@res.proxy-cyber.com:9000

# Sticky: one Berlin household held for 30 minutes under the id "job42"
http://USER-cc-de-city-berlin-sid-job42-ttl-30m:PASS@res.proxy-cyber.com:9000

# SOCKS5 with remote DNS (socks5h), same parameters
socks5h://USER-cc-us:PASS@res.proxy-cyber.com:9001

kérelmek#

A kliens munkamenet újra használja a szoftverfoglalatokat; csak a hozzárendelt átjáró határozza meg az elforgatás és a ragasztott munkamenet viselkedését.Használja a szolgáltatáshoz kapott munkamenetparamétereket, és ellenőrizze a kilépést több kérésen keresztül.A szoftverbeállítások bezárása vagy a Connection: close parancs küldése nem garantál más IP-címet.A socket bezárásával vagy a Connections: close paranccsal nem biztosítható egy másik IP-cím.

kérelmek
import requests

PROXY = "http://USER-cc-us:PASS@res.proxy-cyber.com:9000"
proxies = {"http": PROXY, "https": PROXY}

# One request, one exit
r = requests.get("https://api.ipify.org", proxies=proxies, timeout=30)
print(r.text)

# A sticky flow: same exit for every request of this session
sticky = "http://USER-cc-de-city-berlin-sid-cart42-ttl-15m:PASS@res.proxy-cyber.com:9000"
s = requests.Session()
s.proxies = {"http": sticky, "https": sticky}
s.get("https://example.com/product/1", timeout=30)
s.post("https://example.com/cart", json={"id": 1}, timeout=30)

httpx#

httpx vesz egy egyetlen proxy= argumentum (régebbi verziók: proxies=Támogatja a HTTP/2-t a CONNECT csatornán keresztül, és ugyanúgy működik az aszinkron kódban is.

httpx
import httpx

PROXY = "http://USER-cc-us:PASS@res.proxy-cyber.com:9000"

with httpx.Client(proxy=PROXY, timeout=30) as client:
    print(client.get("https://api.ipify.org").text)

# async, one sticky exit per task
import asyncio

async def fetch(sid: str, url: str) -> str:
    proxy = f"http://USER-cc-us-sid-{sid}-ttl-10m:PASS@res.proxy-cyber.com:9000"
    async with httpx.AsyncClient(proxy=proxy, timeout=30) as client:
        return (await client.get(url)).text

asyncio.run(fetch("task1", "https://api.ipify.org"))

aiohttp#

Az aiohttp kérelemre vagy munkamenetre vonatkozóan veszi át a proxyt, és natív módon beszél HTTP-proxykat; a SOCKS5-nek szüksége van aiohttp-socks Csatlakozó.

aiohttp
import aiohttp, asyncio

PROXY = "http://USER-cc-us:PASS@res.proxy-cyber.com:9000"

async def main():
    async with aiohttp.ClientSession() as session:
        async with session.get("https://api.ipify.org", proxy=PROXY, timeout=aiohttp.ClientTimeout(total=30)) as r:
            print(await r.text())

asyncio.run(main())

Rotáció, keep-alive és újrapróbálkozás#

  • Az új TCP kapcsolat egy új transzport kapcsolat, nem pedig az új kilépés bizonyítéka.Az átjáróhoz rendelt rotációs mód határozza meg a kapcsolat útvonalát.
  • Használjon külön munkamenet-azonosítót minden független munkafolyamathoz, ha a hozzárendelt átjáró támogatja. A kapcsolat részleteiben ellenőrizze az engedélyezett időtartamot és helyparamétereket. Egy otthoni eszköz a kért időtartam előtt leválhat; egy ragacsos munkamenet nem garantálja, hogy napokig ugyanazt az IP-címet használja. Rögzített cím esetén hasonlítsa össze a dedikált statikus termékeket.
  • A 403-as hiba olyan hozzáférési szabályt jelez, amelyet egy másik IP nem tud feloldani. A 429-es hiba esetén tartsa tiszteletben a Retry-After beállítást és csökkentse a kérelmek számát; ideiglenes kapcsolat vagy szerverhiba esetén használjon korlátozott visszalépést. Az állapotváltozási műveleteket csak akkor próbálja meg újra, ha megakadályozhatja az ismétlődő műveleteket.
  • A kilépés típusához állítson be időkorlátokat: 15 másodperc csatlakozás és 45 másod perc olvasás lakossági, mobiltelefon esetén több.

Gigabájt megtakarítás#

A lakossági forgalom GB-onként kerül számlázásra mindkét irányban. Tömörített válaszok kérése (Accept-Encoding: gzip, br A JSON végpontokat részesítsd előnyben a HTML-lel szemben, és soha ne tölts le képeket, betűtípusokat vagy médiafájlokat, hacsak nem ezek az adatok. Egy 350 KB oldal olcsó; egy 4 MB oldal eszközökkel nem. Az oldalak megtekintése

Kérdések, amiket az emberek feltesznek#

Miért kapok mindig ugyanazt az IP-címet a kérelmekkel?

Az ismétlődő IP-címek a kapcsolatcsoportosítás, egy aktív sticky munkamenet vagy a rendelkezésre álló készlet eredménye lehet.Hasonlítsa össze a hozzárendelt útválasztási módot és tesztelje több kérelmet időbélyeggel.A requests.Session kezeli a kapcsolatokat és a cookie-kat; maga nem választja ki a proxykilépést.

Szükségem van más proxyra a HTTPS oldalakhoz?

Ugyanaz a http:// proxy URL kezeli a HTTPS célhelyeket egy CONNECT alagúton keresztül; a kód és a webhely között végponttól végpontig TLS fut.

Használhatom ugyanazt a kódot mobil proxykhoz is?

Yes: replace res.proxy-cyber.com with mob.proxy-cyber.com. Ports, credentials and parameters are identical.

Az Ön fiókja

Kezelje összes proxyját egy fiókból

Hasonlítsa össze a hálózatokat, adja le megrendelését és kövesse nyomon egyenlegét és támogatási kérelmeit egyetlen irányítópulton keresztül.Csapatunk ellenőrzi a fizetéseket és biztosítja a csatlakozási adatokat a szállítás után.

Fiók létrehozása