Integrace · Začátečník

Jak používat proxy servery s Python požadavky, httpx a aiohttp

Tři řádky konfigurace pro knihovnu, pak všude stejná syntaxe uživatelského jména: země, město a relace žijí v proxy URL, takže jedna brána slouží každé úloze.

3 min čtení 6 sekcí Recenzováno Redakční tým Proxy Cyber

Adresa URL proxy serveru#

S Proxy Cyber URL nese vaše přihlašovací údaje a klíč, který je potřeba pro přístup do knihovny. Parametry cílení v uživatelském jménu; hostname je brána a port vybírá protokol.

Proxy URL
# 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

požadavky#

Relace klienta opakovaně používá sokety; pouze přiřazená brána určuje rotaci a chování setrvačné relace.Používejte parametry relace dodané se službou a ověřte ukončení v několika požadavcích.Zavření socketu nebo odeslání Connection: close nezaručuje jinou IP adresu.Client session reuses sockets; only the assigned gateway determines rotation and sticky-session behavior.

požadavky
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 bere jediný proxy= argument (starší verze: proxies=Podporuje HTTP/2 k cíli přes tunel CONNECT a funguje stejným způsobem v asynchronním kódu.

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#

aiohttp používá proxy na požadavek nebo relaci a mluví HTTP proxy nativně; SOCKS5 potřebuje aiohttp-socks konektor.

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

Rotace, keep-alive a opakování#

  • Nové TCP spojení je nové transportní spojení, ne důkaz nového výstupu.Brána přiřazená rotační režim rozhoduje o tom, jak je toto spojení směrováno.
  • Pro každý nezávislý pracovní postup použijte odlišný identifikátor relace, pokud to přiřazená brána podporuje. V podrobnostech o připojení potvrďte povolenou dobu trvání a parametry umístění. Domácí zařízení se může odpojit před požadovaným časem trvání; stálá relace nezaručuje stejnou IP adresu po několik dní.
  • Chyba 403 může znamenat pravidlo přístupu, které nemůže být vyřešeno jinou IP adresou. U chyby 429 respektujte Retry-After a snižte rychlost požadavku; použijte omezené zpětné odpojení pro dočasná připojení nebo selhání serveru. Znovu zkuste změnit stav operací pouze tehdy, když můžete zabránit duplicitním akcím.
  • Nastavte časové limity pro typ výstupu: 15 s připojení a 45 s čtení pro rezidenční, více pro mobilní.

Úspora gigabajtů#

Provoz v rezidenčních sítích se účtuje za GB v obou směrech.Accept-Encoding: gzip, br V těchto knihovnách je standardně zapnutý JavaScript (upřednostňujte koncové body JSON před HTML) a nikdy nestáhněte obrázky, fonty nebo média, pokud nejsou daty.Stránka 350 KB je levná; stránka s položkami o velikosti 4 MB není.

Otázky, které lidé kladou#

Proč se mi stále zobrazuje stejná IP adresa s požadavky?

Opakované IP adresy mohou být výsledkem sdružování připojení, aktivní trvalé relace nebo dostupného fondu.Porovnejte přiřazený režim směrování a otestujte několik požadavků s časovými razítky.Session spravuje připojení a soubory cookie; sama nevybírá ukončení proxy serveru.Session manages connections and cookies; it does not choose the proxy exit itself.

Potřebuji pro HTTPS stránky jiný proxy server?

Stejná adresa URL proxy serveru http:// zpracovává cíle HTTPS prostřednictvím tunelu CONNECT; mezi vaším kódem a webem běží protokol TLS v celém rozsahu.

Mohu použít stejný kód pro mobilní proxy?

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

Váš účet |

Spravujte všechny své proxy v jednom účtu

Porovnejte sítě, zadejte objednávky a sledujte zůstatek a požadavky na podporu z jednoho panelu.Náš tým kontroluje platby a poskytuje podrobnosti o připojení po dodání.

Vytvořit účet