URL proxyja#
Svaka Python HTTP biblioteka uzima proxy kao URL, a s Proxy Cyber-em URL nosi vaše vjerodajnice i ključeve. Parametri ciljanja U korisničkom imenu; ime računala je gateway, a port odabire protokol.
# 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:9001Zahtjevi#
Ponovno korištenje veze i dodjela IP-a su različite kontrole. Klijentska sesija ponovno koristi socketove; samo dodijeljeni gateway određuje rotaciju i ponašanje lijepljene sesije. Koristite parametre sesije isporučenih s uslugom, te provjerite izlaz preko nekoliko zahtjeva. Zatvaranje socket ili slanje Connection: close ne jamči drugačiji IP.
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 uzima jedan proxy= argument (starije verzije: proxies=Podržava HTTP/2 do odredišta kroz CONNECT tunel i radi na isti način u asinkroniziranom kodu.
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 uzima proxy po zahtjevu ili sesiji i govori HTTP proxyje nativno; SOCKS5 treba aiohttp-socks Konektor.
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())Rotacija, zadržavanje i ponovni pokušaji#
- Nova TCP veza je nova transportna veza, a ne dokaz novog izlaza.Dodijeljeni rotacijski način gateway-a odlučuje kako će se ta veza usmjeriti.
- Koristite različit identifikator sesije za svaki neovisni tijek rada, ako ga dodijeljeni pristupnik podržava. Potvrdite parametre dopuštenog trajanja i lokacije u detaljima veze. Uređaj u kućanstvu može se isključiti prije traženog trajanja; trajna sesija ne jamči isti IP danima. Za fiksnu adresu usporedite namjenski statički proizvod.
- Klasificirajte odgovor prije ponovnog pokušaja. 403 može ukazivati na pravilo pristupa koje drugi IP neće riješiti. Za 429, poštujte Retry-After i smanjite brzinu zahtjeva; koristite ograničeni backoff za privremenu vezu ili pogreške servera. Ponovno pokušajte operacije promjene stanja samo kada možete spriječiti duplicirane radnje.
- Postavite vremenska ograničenja na izlaznu vrstu: 15 s povezivanja i 45 s čitanja za stambene, više za mobilne.
Ušteda gigabajta#
Stambeni promet naplaćuje se po GB-u u oba smjera. Pitajte za komprimirane odgovore (Accept-Encoding: gzip, br U tim bibliotekama, uključite JavaScript (koji je po defaultu uključen), preferirajte JSON krajnje točke umjesto HTML-a i nikada ne preuzimajte slike, fontove ili medijske sadržaje osim ako nisu podaci.
Pitanja koja ljudi postavljaju#
Zašto stalno dobivam isti IP s zahtjevima?
Ponavljanje IP adresa može biti rezultat grupiranja veza, aktivne sesije ili dostupnog skupa. Usporedite dodijeljeni način usmjeravanja i testirajte nekoliko zahtjeva s vremenskim žigovima.Sesija upravlja vezama i kolačićima; sama ne odabire izlaz proxyja.
Trebam li drugačiji proxy za HTTPS stranice?
Isti URL proxyja http:// obrađuje HTTPS odredišta putem CONNECT tunela; TLS se izvodi od kraja do kraja između vašeg koda i web-lokacije.
Mogu li koristiti isti kôd za mobilne proxy servere?
Yes: replace res.proxy-cyber.com with mob.proxy-cyber.com. Ports, credentials and parameters are identical.