İntegraler · Yeni başlayanlar

Python istekleri ile proxy nasıl kullanılır, httpx ve aiohttp

Kütüphane başına üç konfigürasyon hattı, o zaman her yerde aynı kullanıcı sözlüğü: ülke, şehir ve oturum proxy URL'de yaşar, bu yüzden bir ağ geçidi her işe hizmet eder.

3 min read 6 bölüm İncelendi Editör ekibi Proxy Cyber

URL proxy#

Her Python HTTP kütüphanesi bir URL olarak bir proxy alır. Anahtar Proxy ile URL sizin kimliklerinizi ve şifrelerinizi taşır Hedef parametreleri hedefleme parametreleri Kullanıcıda; ev sahibi isim ağ geçidi ve liman protokolü alır.

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

requests#

Bağlantı yeniden ve IP ataması farklı kontrollerdir. Bir müşteri oturumu tekrarlar soketler; sadece atanan ağ geçidi rotasyonu ve yapışkan-session davranışını belirler. Hizmetinizle sağlanan oturum parametreleri kullanın ve birkaç isteğin üzerinden çıkışı doğrulayın: Bir soketi kapat veya bağlantı gönder: yakın farklı bir IP garanti etmez.

requests
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#

httpx tek tek bir tek tek bir tane alır proxy= Tartışma (eski sürümler: proxies=) HTTP/2'yi, UTC tüneli aracılığıyla destekliyor ve aynı şekilde async kodunda çalışıyor.

httpx 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, oturum başına veya HTTP proxy'yi alır ve HTTP proxy'leri yerel olarak konuşur; Atari5'in ihtiyacı var aiohttp-socks Bağlantı.

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 and retries#

  • Yeni bir TCP bağlantısı yeni bir ulaşım bağlantısı, yeni bir çıkış kanıtı değildir. Ağ geçidin atan rotasyon modu bu bağlantının nasıl yollandığına karar verir.
  • Her bağımsız iş için ayrı bir oturum tanımlayıcısı kullanın, atanan ağ geçidinin desteklediği yer. Bağlantı ayrıntılarınızda izin verilen süre ve yer parametrelerini onaylayın. Bir konut cihazı talep edilen süreden önce kesebilir; bir çubuk oturumu aynı IP'nin aynı zamanda belirli bir adres için bir garanti değildir, özel bir statik ürünle karşılaştırın.
  • Yeniden denemeden önce cevabı sınıflandırmak. 403, başka bir IP'nin çözmeyeceğine dair bir erişim kuralı gösterebilir. 429 için, Retry- After ve istek oranını azaltır; geçici bağlantı veya sunucu başarısızlıkları için sınırlanan geri yükleme kullanın. Retry state-change operations only when you can prevent another actions.
  • Çıkış türüne zaman ayırın: 15 s bağlantı ve 45 s konut için daha fazla okunuyor.

gigabaytları kurtarmak#

Konut trafiği her iki yönde de GB'de faturalanır. sıkıştırılmış cevaplar (İngilizce).Accept-Encoding: gzip, br Bu kütüphanelerde varsayılan olarak, JSON uç noktaları HTML'ye tercih eder ve veriler olmadığı sürece görüntüleri, fontları veya medyayı asla indirmez. 350 KB sayfası ucuzdur; varlıklarla 4 MB sayfası değildir.

Soru: İnsanlar soruyor#

Neden aynı IP'yi isteklerle almaya devam ediyorum?

Tekrarlanan IP'ler bağlantı havuzundan sonuçlanabilir, aktif bir çubuk seansı veya mevcut havuz. atanan routing moduyla karşılaştırıldığında ve birkaç isteği zaman damgaları ile test edebilir.A requests.Session manages connections and cookies; it does itself choose the proxy.

HTTPS siteleri için farklı bir proxyya ihtiyacım var mı?

Hayır. Aynı http:// proxy URL, HTTPS destinasyonlarını bir şampanya tüneliyle ele geçiriyor; TLS kodunuz ve siteniz arasında sona erecektir.

Mobil proxy için aynı kodu kullanabilir miyim?

Evet: Res.proxy-cyber.com'u mob.proxy-cyber.com. Ports, kimlik ve parametreler aynıdır.

Hesabınız

Bir hesaptaki referanslarınızı yönetin

Ağlarla kıyasla, yer siparişleri ve bakiyenizi takip edin ve bir panodan gelen talepleri takip edin. Ekibimiz ödemeleri ve teslimattan sonra bağlantı ayrıntıları sağlar.

Create account