Ich arbeite mit einem Prozess, der im Wesentlichen wie folgt aussieht:
Response
Objekt. text
jeder Antwort. Aus meiner Sicht scheint dies ideal für Anfragen zu sein:
GRequests ermöglicht es Ihnen, Requests mit Gevent asynchron zu verwenden HTTP-Anfragen leicht.
Aber die beiden Prozesse (einer mit Anfragen, einer mit Anträgen) scheinen mir unterschiedliche Ergebnisse zu bringen, wobei einige der Anfragen in Anträgen None
und nicht eine Antwort zurückgeben.
Warum der Unterschied in den Ergebnissen?
Update: Ich kann den Ausnahmetyp wie folgt drucken. Verwandte Diskussion hier , aber ich habe keine Ahnung, was los ist.
%Vor% Sie senden nur Anfragen zu schnell. Da grequests
eine asynchrone Bibliothek ist, werden alle diese Anfragen fast gleichzeitig gesendet. Sie sind zu viele.
Sie müssen nur die gleichzeitige Aufgaben von grequests.map(rs, size=your_choice)
begrenzen, ich habe grequests.map(rs, size=10)
getestet und es funktioniert gut.
Ich kenne den genauen Grund für das beobachtete Verhalten nicht mit .map()
. Die Verwendung der .imap()
-Funktion mit size=1
hat jedoch immer eine 'Response 200' für meine paar Minuten Test zurückgegeben. Hier ist der Code snipet:
Und wenn Sie nicht warten möchten, bis alle Anfragen fertig sind, bevor Sie an ihren Antworten arbeiten, können Sie das folgendermaßen tun:
%Vor%Tags und Links python python-3.x httprequest grequests python-requests