Proxy in Python Requests verwenden (HTTP/HTTPS & Session-Pooling)
Aktualisiert:
Die Python-Bibliothek requests unterstützt authentifizierte VinaProxy-Proxys über ein proxies-Dictionary, das die Schemata 'http' und 'https' auf http://user:pass@ip:port abbildet. Das Binden dieses Dictionarys an eine persistente requests.Session() nutzt bestehende TCP-Sockets wieder und ermöglicht schnelles Web-Scraping mit minimalem Overhead.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP40.000 ₫
- 5+ IPs35.000 ₫
- 10+ IPs25.000 ₫
- 20+ IPs25.000 ₫
- 50+ IPs25.000 ₫
- 100+ IPs25.000 ₫
- 200+ IPs25.000 ₫
- 500+ IPs25.000 ₫
- 1000+ IPs22.000 ₫
- 2000+ IPs20.000 ₫
- 1 IP40.000 ₫
- 5+ IPs35.000 ₫
- 10+ IPs25.000 ₫
- 20+ IPs25.000 ₫
- 50+ IPs25.000 ₫
- 100+ IPs25.000 ₫
- 200+ IPs25.000 ₫
- 500+ IPs25.000 ₫
- 1000+ IPs22.000 ₫
- 2000+ IPs20.000 ₫
Formatierung des proxies-Dictionarys & Session-Wiederverwendung
Der separate Aufruf von requests.get() für jede URL initiiert bei jeder Abfrage einen neuen TCP-Verbindungsaufbau und TLS-Handshake. Die Verknüpfung Ihres Proxys mit session = requests.Session() hält den Proxy-Tunnel über aufeinanderfolgende Anfragen hinweg offen.
| Requests-Parameter | Empfohlene Syntax | Technischer Einsatzzweck |
|---|---|---|
Schlüssel 'http' | 'http://user:pass@ip:port' | Leitet normale HTTP-Anfragen über den Proxy |
Schlüssel 'https' | 'http://user:pass@ip:port' | Nutzt das http://-Schema, damit urllib3 einen HTTP CONNECT-Tunnel für TLS öffnet |
timeout-Tupel | timeout=(5, 15) | 5 s Verbindungs- und 15 s Lese-Timeout gegen blockierte Threads |
| Pool-Rotation | itertools.cycle(proxy_list) | Verteilt Anfragen gleichmäßig über Ihren statischen IP-Pool |
Häufige urllib3- und ProxyError-Fehlerquellen vermeiden
- Verwenden Sie für die Dictionary-Schlüssel
'http'und'https'immerhttp://(nichthttps://) als URL-Schema des Proxys, es sei denn, Ihr Port erfordert ausdrücklich TLS-over-TLS - Enthalten Passwörter Sonderzeichen, kodieren Sie diese mittels
urllib.parse.quote(password, safe='') - Ein Fehler vom Typ
407 Proxy Authentication Requiredweist darauf hin, dass Benutzername oder Passwort nicht mit Ihren Zugangsdaten übereinstimmen - Funktioniert völlig identisch mit
httpx.Client(proxy='http://user:pass@ip:port')undaiohttpmitsession.get(url, proxy=...)
Schritt für Schritt
- 1
ip:port:user:pass in URL-Format umwandeln
Verwenden Sie unseren Proxy-Format-Konverter, um Ihre VinaProxy-Liste in
http://user:pass@ip:port-Zeilen umzuwandeln. - 2
Das proxies-Dictionary definieren
Definieren Sie in Ihrem Python-Code
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}. - 3
An requests.Session() anbinden
Erstellen Sie
s = requests.Session()und rufen Sies.proxies.update(proxies)für persistentesKeep-Alive-Pooling auf. - 4
Ausgangs-IP per Testabfrage prüfen
Führen Sie
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())aus, um die aktive Proxy-IP zu bestätigen.
Häufig gestellte Fragen
Warum lautet der Wert für 'https' ebenfalls 'http://user:pass@ip:port'?
Das http://-Präfix teilt urllib3 mit, wie es sich mit dem Proxy-Server selbst verbindet (über HTTP CONNECT), während die Verbindung zur Zielwebseite https:// durchgehend TLS-verschlüsselt bleibt.
Wie rotiere ich 25 statische Proxys in Python bei Anfragen?
Laden Sie Ihre 25 Proxy-URLs in pool = itertools.cycle(PROXIES) und übergeben Sie bei jedem Request proxies={'http': p, 'https': p} mit angemessenem Rate-Limiting pro IP.
Wird der Datenverkehr von Python-Scraping-Skripten bei VinaProxy gedrosselt?
Nein. Alle Tarife für dedizierte IPv4- und statische ISP-Proxys beinhalten unbegrenztes Datenvolumen.
Proxy-Pool für Python-Scraping mit unbegrenztem Traffic aufbauen
Dedizierte IPv4- und statische ISP-Proxys in 7 Ländern sofort freischalten.
Python-Proxys kaufen