
Praktische Übungen mit Python zur Verarbeitung von JSON-Daten von Proxy-IPs
Wir tun Datenerfassung oft mit Proxy-IP zu tun haben, nehmen Sie heute die eigentliche Szene zu sagen, wie Python verwenden, um mit Proxy-IP-Service-Provider zurück JSON-Daten zu behandeln. Nehmen wir zum Beispiel an, wir extrahieren eine Reihe von Proxy-IPs von ipipgo und geben sie in diesem Format zurück:
{
"code": 200,
"data": [
{ "ip": "1.1.1.1", "port": 8000, "expire_time": "2024-01-01 12:00:00"}, { "ip": "2.2.2.2", "port": 8080, "expire_time": 2024-01-01 12:05:00"}, [
{"ip": "2.2.2.2", "port": 8080, "expire_time": "2024-01-01 12:05:00"}
]
}
Grundlegende Analyse der drei Achsen
Beginnen Sie damit, Neulingen drei unerlässliche Maßnahmen beizubringen:
json importieren
Angenommen, die Antwort sind die von ipipgo zurückgegebenen Rohdaten
raw_data = antwort.text
Der erste Stil: in das Wörterbuch
proxy_dict = json.loads(raw_data)
Zweitens: Nehmen Sie die IP-Liste
ip_list = proxy_dict['data']
Dritter Stil: Traversalverarbeitung
for proxy in ip_list.
print(f "Verfügbare Proxys: {proxy['ip']}:{proxy['port']}")
Achten Sie auf die Schlaglöcher, die Ihnen hier begegnen können:Vergewissern Sie sich, dass das Codefeld 200 ist.Wenn nicht, ist etwas mit der Anfrage nicht in Ordnung. Schlagen Sie vor, ein Urteil hinzuzufügen:
if proxy_dict.get('code') ! = 200: raise Exception("Proxy konnte nicht extrahiert werden.
raise Exception("Proxy konnte nicht extrahiert werden, Fehlercode: " + str(proxy_dict.get('code')))
Ausgefallene Manöver im echten Leben
Diese Situationen müssen wir bei dem aktuellen Projekt berücksichtigen:
| Nehmen Sie | Verschreibung |
|---|---|
| Verarbeitung der IP-Verfallszeit | Konvertierung von Zeitstempeln mit datetime |
| Batch-Tests für die Benutzerfreundlichkeit | Kombination aus Multithreading und Anfragen |
| Anomale IP-Filterung | Regulärer Ausdruck prüft IP-Format |
Geben Sie ein vollständiges Beispiel mit Proxy-Tests:
import requests
from concurrent.futures importieren ThreadPoolExecutor
def test_proxy(proxy)::
try: resp = requests.get('')
resp = requests.get('http://httpbin.org/ip',
proxies={'http': f "http://{proxy['ip']}:{proxy['port']}"},
timeout=5)
return True if resp.status_code == 200 else False
return False if resp.status_code == 200 else False außer.
return False
Angenommen, wir erhalten 10 Agenten von ipipgo.
with ThreadPoolExecutor(max_workers=5) as executor: results = executor.map(test_proxy, ip_list)
Ergebnisse = executor.map(test_proxy, ip_list)
alive_proxies = [ip for ip, status in zip(ip_list, results) if status]
Häufig gestellte Fragen QA
F: Was sollte ich tun, wenn ich die Proxy-IP nicht verwenden kann?
A: Überprüfen Sie zunächst die Netzwerkkonnektivität und verwenden Sie dann das von ipipgo bereitgestellte Online-Testtool. Es wird empfohlen, statischen Wohnpaketen den Vorrang zu geben, um eine höhere Stabilität zu erreichen.
F: Was ist, wenn die zurückgegebene JSON-Datei verschachtelte Daten enthält?
A: Wenn Sie zum Beispiel auf diese Struktur stoßen: data→region→city, können Sie get verketten, um den Wert zu holen:
Stadt = proxy.get('Region', {}).get('Stadt')
F: Wie sollte ich ein Paket auswählen?
A: Je nach Geschäftsanforderungen:
- Dynamisches Wohnen (Standard): geeignet für die routinemäßige Datenerfassung
- Enterprise Edition: Wählen Sie, wenn eine hohe Gleichzeitigkeit erforderlich ist
- Statische Unterkünfte: langfristige feste betriebliche Nutzung
Die einzigartigen Vorteile von ipipgo
Unser Agenturservice umfasst drei Meisterwerke:
1. die Extraktion ist sehr bequem, die API liefert direkt das Standard-JSON-Format
2. unterstützenDoppeltes Protokoll Socks5/HTTPWenn Sie einen Parameter im Code ändern, können Sie die
(3) Client kommt mit IP-Erkennung Funktion, müssen nicht ihre eigenen Testskripte zu schreiben
Speziell für grenzüberschreitende Geschäfte kann mit unserem TK-Dedicated-Paket die Verzögerung auf 40% oder mehr sinken. Der Preis ist absolut gewissenhaft, dynamische Wohn-Pakete7 mehr für 1 G Verkehr, billiger als der Kauf einer Getränkeflasche.
Schließlich, ein nachdenklich Tipp: Denken Sie daran, Ausnahmeerfassung bei der Verarbeitung von JSON, Proxy-IP diese Sache Netzwerkschwankungen sind unvermeidlich hinzuzufügen. Encountered Parsing-Fehler ersten Blick auf das Dokument, ipipgo Antwortformat sind standardisiert, nach dem Beispiel-Code, um die grundlegenden ändern wird nicht umgestoßen werden.

