
Praktische Übungen mit Python zur Verarbeitung von JSON-Daten von Proxy-IPs
Freunde in Netzwerk-Crawler beschäftigt müssen diese Situation begegnet sein: Es ist schwierig, einen Proxy-IP-Dienstleister zu finden, ist das Ergebnis der Rückkehr Datenformat ein Chaos. Zu diesem Zeitpunkt müssen wir auf die JSON-Parsing-Methode verlassen, vor allem mit Python dieses magische Werkzeug zu behandeln, kann auf jeden Fall lassen Sie ein paar Haare verlieren.
JSON-Grundlagen ohne sich zu verirren
Nehmen wir einmal an, Sie erhalten Daten wie diese von der ipipgo-API:
{
"proxy_list": [
{ "ip": "192.168.1.1", "port":8080, "type": "socks5"}, {
{"ip": "10.0.0.2", "port":3128, "type": "http"}
]
}
Es ist einfach, mit Pythons eigener json-Bibliothek zu disassemblieren:
json importieren
raw_data = "die obige JSON-Zeichenkette".
parsed = json.loads(raw_data)
for proxy in parsed['proxy_list'].
print(f "Verfügbare Proxys: {proxy['ip']}:{proxy['port']}")
Proxy-IP-Real-Battle eingestellt
Jetzt kommt der Knackpunkt! Bei der Verwendung der Anforderungsbibliothek mit Proxys bleiben viele Leute am Parameterformat hängen:
Einfuhrgesuche
proxies = {
"http": "http://用户:密码@ip:port",
"https": "http://用户:密码@ip:port"
}
Beispiel für TK-Mietleitungsproxy mit ipipgo
resp = requests.get('Zielseite', proxies=proxies, timeout=10)
Besondere Erinnerung:Wenn Sie SSL-Zertifikatsfehler feststellen, fügen Sie eineverify=FalseParameter vorübergehende Lösung, aber die offizielle Umgebung erinnern, um das Zertifikat entsprechen.
Wie man ein ipipgo-Paket auswählt
Bei der Auswahl der Pakete gibt es tatsächlich einen Trick:
- Datenerfassung durchführen AuswahlDynamisches Wohnen (Standard)Die 7$+ für 1G Traffic sind erschwinglich genug.
- Unternehmen Business DirectDynamischer Wohnungsbau (Unternehmen)Paket, Stabilität ist mehr top
- Feste IP-OptionStatische Häuser35 Dollar pro Monat, daran gibt es keinen Zweifel.
Leitlinien für die Entminung häufiger Fallstricke
Q:Was sollte ich tun, wenn ich beim Parsen von JSON einen KeyError melde?
A: Achtzig Prozent des Feldnamens sind falsch geschrieben, verwenden Sie zuerst dieprint(geparst.schlüssel())Sehen Sie sich die Datenstruktur an
F: Was sollte ich tun, wenn ich keine Verbindung zur Proxy-IP herstellen kann?
A: Überprüfen Sie zuerst die Whitelist-Einstellungen, es dauert 3-5 Minuten, bis die API von ipipgo nach der Extraktion wirksam wird.
F: Wie kann man automatisch zwischen mehreren Agenten wechseln?
A: Verwenden Sie eine Schleifenstruktur und eine Zufallsauswahl, um eine Poolrotation der Proxy-Liste von ipipgo durchzuführen.
Tipps und Tricks für Fortgeschrittene
Versuchen Sie diese Leistungsoptimierung, wenn Sie mit einer großen Anzahl von Agenten arbeiten:
from multiprocessing import Pool
def check_proxy(proxy):
Logik zur Überprüfung der Verfügbarkeit eines Proxys
pass
if __name__ == '__main__': with Pool(4) as p: if __name__ == '__main__'.
with Pool(4) as p.
results = p.map(check_proxy, proxy_list)
Die Verwendung mehrerer Prozesse zur Überprüfung des Überlebensstatus des Agenten ist um einiges schneller als ein einzelner Thread. Denken Sie daran, im ipipgo-Backend eine automatische Auffüllung einzurichten, um sicherzustellen, dass der Agentenpool immer voll ist.
Und zum Schluss noch ein Kaltgetränk: ipipgo's grenzüberschreitende LeitungsunterstützungSocken5-Protokoll, das in einigen speziellen Szenarien stabiler ist als das http-Protokoll. Angesichts des häufigen Auftretens von CAPTCHA, möchten Sie vielleicht das Protokoll Typ zu ändern, um zu versuchen, kann es eine Überraschung sein.

