Integrasi · Pemula

Cara menggunakan proksi dengan permintaan Python, httpx dan aiohttp

Tiga baris konfigurasi per perpustakaan, maka sintaks nama pengguna yang sama di mana-mana: negara, kota dan sesi tinggal di URL proksi, sehingga satu gateway melayani setiap pekerjaan.

3 min min read 6 bagian Disemak Pasukan editorial Proxy Cyber

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.

URL Proksi IO
# 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

Permintaan 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.

Permintaan permintaan permintaan
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.

Nama samaran 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"))

OFineau aiohttp#

JACK aiohttp mengambil proksi per permintaan atau per sesi dan berbicara proksi HTTP secara natif; SOCKS5 membutuhkan aiohttp-socks Konektor.

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

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.

Akunmu

Urus semua proksi dalam satu akaun

Jaringan perbandingan, perintah tempat dan ikuti keseimbangan dan permintaan dukungan Anda dari satu dashboard. tim kami meninjau pembayaran dan menyediakan rincian koneksi setelah pengiriman.

Cipta akaun