2017-01-04 2 views
-1

Mein Projekt ist es, eine extrem große Anzahl von IDs von Twitter herunterzuladen. Auch bekannt als, dass der durchschnittliche Benutzer eine geringe Anzahl von Followern (100-200) hat. ich dafür verwenden, das Paket Twython Streaming und hier ist der wichtigste Teil meines Programms:Schneller twitter ID stream

while(next_cursor): 

    follower_id=twitter.get_followers_ids(user_id=ids,cursor=next_cursor) 
    time.sleep(60) 
    next_cursor=follower_id['next_cursor'] 

Dies ist ein wirklich einfaches Dorsch, und funktioniert auch, aber sehr langsam, für große Anzahl von ID-s, da die Funktion tw.get_follower_id() - s Rate limit 5000 ID/Minute ist, ist die Zeit Sleep-Funktion im Code.

Meine Frage, gibt es irgendwelche Möglichkeiten, diesen Code zu beschleunigen?

Vielleicht so, dass das Programm nicht nach jeder Abfrage pausiert, nur wenn es wirklich nötig ist. Könnte jemand dabei helfen?

Antwort

0

Twitter bieten Rate-Limit-Informationen in den Kopfzeilen gesendet mit jeder API-Antwort. SO können Sie das überprüfen und daher mit der maximal zulässigen Rate anrufen. Sie können Ihren Ratenbegrenzungsstatus auch von Twitter über einen bestimmten Ratenlimit-API-Aufruf anfordern und das zu prüfende Ratenlimit nicht reduzieren. Ich benutze Twython nicht selbst, daher kann ich in Twython nicht darauf eingehen.

Es wird Ihnen nicht viel extra - vielleicht ein paar%.

Alternativ kann es nicht schaden, gelegentlich auf das Ratenlimit zu stoßen - Sie erhalten eine Fehlermeldung. Solange es nicht zu häufig ist, wird Twitter nichts dagegen haben.

Die grundlegende Rate-Limit-Geschwindigkeitsbegrenzung - um das herum. Vielleicht haben Gnip einen kostenpflichtigen Dienst, mit dem Sie diese Daten schneller herunterladen können?

+0

Vielen Dank! – John

Verwandte Themen