URL proksi#
Setiap pustaka HTTP Python mengambil proksi sebagai URL. Dengan Proxy Cyber URL membawa kredensial dan kelayakan Anda targeting parameters Di dalam nama pengguna; nama panggilan adalah gateway dan port memilih 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:9001Permintaan permintaan permintaan#
Tugas penggunaan ulang dan IP tanpa sambungan adalah kontrol yang berbeda. Sesi klien menggunakan kembali soket; hanya gateway yang ditugaskan menentukan rotasi dan perilaku sesi lengket. Gunakan parameter sesi yang diberikan dengan layanan Anda, dan memverifikasi keluar atas beberapa permintaan. Menutup soket atau mengirim Sambungan: menutup tidak menjamin IP yang berbeda.
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)Nama samaran httpx#
♪ httpx mengambil satu ♪ proxy= argumen irarki (versi lebih lama: proxies=Ini mendukung HTTP/2 ke tujuan melalui terowongan CONECT dan bekerja dengan cara yang sama dalam kode async.
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"))OFineau aiohttp#
JACK aiohttp mengambil proksi per permintaan atau per sesi dan berbicara proksi HTTP secara natif; SOCKS5 membutuhkan 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())Putaran, terus-hidup dan retries#
- Sambungan TCP baru adalah sambungan transportasi baru, bukan bukti jalan keluar baru. Mod rotasi yang ditugaskan oleh gateway menentukan bagaimana koneksi itu dialihkan.
- Gunakan pengenalpasti sesi yang berbeda untuk setiap alur kerja independen, di mana gateway yang ditugaskan mendukungnya. Konfirmasi durasi dan parameter lokasi yang diizinkan dalam rincian koneksi Anda. Sebuah perangkat pemukiman dapat memutuskan sebelum durasi yang diminta; sesi lengket bukan jaminan IP yang sama selama berhari-hari. Untuk alamat tetap, bandingkan produk statik berdedikasi.
- Mempelajari respon sebelum mencoba kembali. A 403 mungkin menunjukkan aturan akses bahwa IP lain tidak akan menyelesaikan. Untuk 429, hormati Coba-Setelah dan kurangi tingkat permintaan; gunakan backoff terikat untuk koneksi sementara atau kegagalan server. Coba lagi operasi perubahan-negara hanya ketika Anda dapat mencegah tindakan duplikat.
- Set waktu habis ke tipe keluar: 15 s connect dan 45 s baca untuk hunian, lebih untuk mobile.
Simpan Gigabytes#
Lalu lintas penduduk sipil ditagih per GB ke dua arah.Accept-Encoding: gzip, br Secara default ada di perpustakaan ini), lebih suka titik akhir JSON ke HTML, dan tidak pernah mengunduh gambar, font atau media kecuali mereka adalah data. Halaman KB 350 murah; halaman 4 MB dengan aset tidak.
Pertanyaan orang#
Kenapa aku terus mendapatkan IP yang sama dengan permintaan?
IP yang berulang-ulang dapat dihasilkan dari sambungan pooling, sesi lengket aktif atau kolam yang tersedia. Bandingkan mode routing yang ditugaskan dan uji beberapa permintaan dengan timestamp. Sebuah permintaan.Sesi mengelola koneksi dan cookie; itu tidak sendiri memilih proksi keluar.
Apakah aku perlu proksi yang berbeda untuk situs HTTPS?
Tidak. http:// proksi yang sama URL menangani tujuan HTTPS melalui terowongan CONECT; TLS menjalankan akhir untuk mengakhiri antara kode dan situs Anda.
Boleh kugunakan kode yang sama untuk proksi seluler?
Ya: ganti res.proxy-cyber.com dengan mob.proxy-cyber.com. Ports, kelayakan dan parameter identik.