2017-03-31 5 views
0

Ich versuche, jeden einzelnen Beitrag von einem subreddit den ganzen Weg zurück zu fangen, es beginnt im Jahr 2010, speziell/r/nosleep.PRAW Alle Subreddit-Beiträge anfordern: 401 Fehler empfangen

Mein Code diese Beiträge für die Ergreifung ist die übliche:

for submission in nosleep.submissions(end=int(time.time()): 

Es funktioniert perfekt, ich habe meine Anmeldeinformationen arbeiten sie alle überprüft, und es wird ohne Frage im Wert von Pfosten leicht 2 Jahre greifen. Was passiert ist, ich führe die oben für die Schleife, und irgendwann um das Ende, gibt es eine 401 und stürzt das gesamte Programm ab.

Ich habe überprüft und bestätigt die folgenden Szenarien:

  • Es 2010-2011 greifen wird, kein Problem mit ihm die „Start“ des subreddit schlagen und es denkt verboten Beiträge vor dem subreddit greifen begann.
  • Ich habe reddit.auth.limits auf jeder Schleife ausgedruckt, und sie alle antworten mit None, so dass ich nicht von Anforderungsfreigaben ausgehen.

Der einzige „Hack“ um diese Arbeit in zwei for-Schleifen aufzuteilen ist, Aufspalten int(time.time()) in zwei (oder mehr) Stücke und Iterieren jeweils über wie folgt aus:

for submission in nosleep.submissions(start=middle, end=int(time.time())): 
for submission in nosleep.submissions(end=middle): 

Selbst dann, es gibt manchmal eine 401 zurück. Ich vermute, dass es wegen der Länge der Zeit ist, die diese Schleife läuft, aber ich weiß es nicht. Hat jemand irgendwelche Vorschläge für eine neue Methode, oder bearbeiten Sie die PRAW-Quelle, um Platz zu nehmen?

Antwort

1

Testen Sie die neueste Entwicklungsversion von PRAW (pip install --upgrade https://github.com/praw-dev/praw/archive/master.zip), da dieses Problem gelöst werden sollte.