Ich schrieb einen Web-Scraper mit Requests-Modul. Ich öffne eine Sitzung und sende nachfolgende Anfragen mit dieser Sitzung. Es hat 2 Phasen.Python Session 10054 Verbindung abgebrochen Fehler
1) Kratzen Seite für Seite und sammeln IDs in einem Array. 2) Details zu jeder ID im Array mit Anfragen an einen Ajax-Server auf demselben Host abrufen.
Der Scraper funktioniert gut auf meinem Linux-Rechner. Allerdings, wenn ich den Bot auf Windows 10 ausführen, Phase 1 ist gut abgeschlossen, aber nach ein paar Anfragen in Phase 2 Python löst diese Ausnahme
Datei "c: \ python27 \ lib \ Site-Pakete \ Anfragen \ Adapter. py ", Zeile 453, in send raise ConnectionError (err, request = Anfrage) ConnectionError: (Verbindung abgebrochen., Fehler (10054, 'Varolan bir ba \ xf0lant \ xfd uzaktaki bir ana bilgisayar taraf \ xfdndan zorla kapat \ xfdld '))
Was unterscheidet zwei Betriebssysteme, die das verursachen? Wie kann ich dieses Problem überwinden?
Nachdem ich meinen Anfragecode wie unten geändert hatte, hatte das Wiederholen des Moduls keine positiven Auswirkungen. Jetzt wirft das Skript keine Ausnahmen, sondern hängt einfach nichts.
@retry(wait_exponential_multiplier=1000, wait_exponential_max=10000, stop_max_attempt_number=7)
def doReq(self, url):
time.sleep(0.5)
response = self.session.get(url, headers=self.headers)
return response