Fehler 429 beim Aufruf von Reddit api von Google App Engine

8

Ich habe jetzt seit über einem Monat einen Cron-Job in der Google App Engine ohne Probleme ausgeführt. Der Job führt eine Vielzahl von Dingen aus. Einer davon ist, dass er urllib2 verwendet, um einen Aufruf zum Abrufen einer JSON-Antwort von Reddit sowie einigen anderen Sites zu tätigen. Vor zwei Wochen habe ich Fehler beim Aufruf von Reddit gesehen, aber keine Fehler beim Aufruf der anderen Seiten. Der Fehler, den ich erhalte, ist HTTP-Fehler 429.

Ich habe versucht, denselben Code außerhalb von Google App Engine auszuführen und habe keine Probleme. Ich habe versucht, mit URLFetch, aber den gleichen Fehler erhalten.

Sie können den Fehler sehen, wenn Sie die interaktive Shell der Suchmaschine mit dem folgenden Code verwenden.

%Vor%

Bearbeiten: Nicht sicher, warum es immer für mich und nicht für jemand anderen fehlschlägt. Dies ist der Fehler, den ich erhalte:

%Vor%

ähnlicher Code, der ohne Probleme mit der App Engine läuft:

%Vor%

Zuerst dachte ich, es hätte mit einem Timeout-Problem zu tun, da es ursprünglich funktionierte, aber da es keinen Timeout-Fehler gibt, sondern einen seltsamen HttpError-Code, bin ich mir nicht sicher. Irgendwelche Ideen?

    
dMcNavish 22.01.2012, 18:29
quelle

2 Antworten

13

Reddit-Rate begrenzt die API ziemlich stark für den Standard-User-Agent für die Python-Shell. Sie müssen einen eindeutigen Benutzeragenten mit Ihrem reddit-Benutzernamen darin setzen, wie folgt:

  

User-Agent: super happy flair bot von / u / splugg

Weitere Informationen über die Reddit-API finden Sie Ссылка .

    
TomL 06.09.2012, 12:19
quelle
0

Es ist möglich, dass Reddit Anrufe basierend auf IP zählt - was bedeutet, dass andere Anwendungen auf GAE, die Ihre IP teilen, das Kontingent bereits erschöpfen.

Dies wird möglicherweise besser, wenn Sie die Reddit-API-Schlüssel verwenden (ich weiß nicht, ob sie diese ausgeben) oder ob sie sich dazu bereit erklären, API-Aufrufe auf der Grundlage des App-Headers zu begrenzen.

    
Sudhir Jonathan 06.05.2012 09:25
quelle