Integrationer · Nybörjare

Hur man använder proxyservern med Python-förfrågningar, httpx och aiohttp

Tre rader med konfiguration per bibliotek, sedan samma användarnamnssyntax överallt: land, stad och session lever i proxy URL, så en gateway tjänar varje jobb.

3 min lästid 6 sektioner Granskad Redaktionsteamet Proxy Cyber

Proxy-URL:en#

Med Proxy Cyber bär URL:en dina referenser och den används för att skicka meddelanden till andra användare. Inriktning på parametrar i användarnamnet; värdnamnet är gatewayen och porten väljer protokollet.

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

begäranden#

Återanvändning av anslutning och IP-tilldelning är olika kontroller. En klientsession återanvänder sockets; endast den tilldelade gatewayen bestämmer rotation och sessionsbeteendet för fasta sessioner. Använd sessionsparametrarna som medföljer tjänsten och verifiera utgången över flera begäranden. Att stänga en socket eller skicka Connection: close garanterar inte en annan IP.

begäranden
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 tar en enda proxy= argument (äldre versioner: proxies=Den stöder HTTP/2 till destinationen genom CONNECT tunneln och fungerar på samma sätt i asynkron kod.

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 tar proxy per begäran eller session och talar HTTP-proxy inbyggt; SOCKS5 behöver aiohttp-socks kontaktdon.

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

Rotation, keep-alive och omförsök#

  • En ny TCP-anslutning är en ny transportanslutning, inte ett bevis på en ny utgång.Gatewayens tilldelade rotationsläge bestämmer hur anslutningen dirigeras.
  • Använd en separat sessionsidentifierare för varje oberoende arbetsflöde, där den tilldelade gatewayen stöder det. Bekräfta tillåtna parametrar för varaktighet och plats i anslutningsinformationen. En bostadsenhet kan kopplas bort före begärd varaktighet; en fast session är inte en garanti för samma IP-adress under flera dagar. För en fast adress jämför med en dedikerad statisk produkt.
  • Klassificera svaret innan du försöker igen. Ett 403-fel kan indikera en åtkomstregel som inte kommer att lösas av en annan IP-adress. För 429, respektera Retry-After och minska begäranshastigheten; använd begränsad backoff för tillfälliga anslutningar eller serverfel.
  • Ställ in timeouts till utgångstypen: 15 s ansluta och 45 s läsa för bostad, mer för mobil.

Spara gigabyte#

Bostadstrafik debiteras per GB i båda riktningarna. Be om komprimerade svar (Accept-Encoding: gzip, br För att undvika detta bör du använda en JSON-fil (som är på som standard i dessa bibliotek) och inte ladda ner bilder, typsnitt eller media om det inte är data. En sida på 350 KB är billigt. En sida med resurser på 4 MB är det inte.

Frågor som folk ställer#

Varför får jag samma IP med förfrågningar?

Upprepade IP-adresser kan bero på anslutningspooler, en aktiv fast session eller den tillgängliga poolen.Jämför det tilldelade routningsläget och testa flera begäranden med tidsstämplar.A requests.Session hanterar anslutningar och cookies; den väljer inte själv proxyavslutningen.

Behöver jag en annan proxy för HTTPS-webbplatser?

Samma http://-proxywebbadresser hanterar HTTPS-destinationer via en CONNECT-tunnel, medan TLS körs från början till slut mellan din kod och webbplatsen.

Kan jag använda samma kod för mobila proxy-servrar?

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

Ditt konto -

Hantera alla dina proxyer på ett konto

Jämför nätverk, placera beställningar och följ ditt saldo och supportbegäranden från en enda kontrollpanel.Vårt team granskar betalningar och ger anslutningsuppgifter efter leverans.

Skapa konto