Wie Sie zu Sammeln, Tweets schneller Mit dem Twitter-API in Python?
Für ein Forschungsprojekt, ich bin das sammeln von tweets mithilfe von Python-Twitter. Aber bei der Ausführung unserer nonstop-Programm auf einem einzelnen computer für eine Woche, die wir verwalten, zu sammeln, etwa nur 20 MB Daten pro Woche. Ich bin nur die Ausführung dieses Programms auf einer Maschine, so dass wir nicht erfassen die gleichen tweets doppelt.
Unser Programm läuft eine Schleife, die Anrufe getPublicTimeline() alle 60 Sekunden. Ich habe versucht, zu verbessern, das durch den Aufruf von getUserTimeline() auf einige der Benutzer, die erschien in der öffentlichen timeline. Dies jedoch konsequent, hab mir verboten das sammeln der tweets an alle für etwa eine halbe Stunde jedes mal. Auch ohne das Verbot, schien es, dass gab es sehr wenig speed-up durch das hinzufügen dieses Codes.
Weiß ich über Twitter die "Whitelist", mit der ein Benutzer senden mehr Anfragen pro Stunde. Ich bewarb mich für diese etwa drei Wochen, und nicht hören, wieder da, also ich bin auf der Suche nach alternativen, die erlauben, dass unser Programm zum sammeln von tweets effizienter zu gestalten, ohne dabei über das standard-limit. Kennt jemand eine schnellere Möglichkeit zum sammeln von öffentlichen tweets von Twitter? Wir hätten gerne über 100 MB pro Woche.
Dank.
- Alter Beitrag, aber für Leute, die stolpern hier: getPublicTimeline() ist nicht in der aktuellen Twitter-API-noch-python-twitter-code, aber es wahrscheinlich wird der timeline des Benutzers, der authentifiziert wurde - ich vermute das ist der Grund für die geringe Anzahl der tweets. Ich glaube nicht, dass Sie tun können, eine offene Abfrage mit der REST-API, aber mit der streaming-API können Sie (gibt, ich denke, .1% der firehose - genug, um einige Gigabyte an Daten in ein paar Tagen)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie über die Verwendung der die streaming-API? Das ist genau der use-case, es wurde geschaffen, um Adresse. Mit der streaming-API, werden Sie keine Probleme haben, zu sammeln Megabyte tweets. Sie will immer noch nicht in der Lage, den Zugriff auf alle tweets oder sogar eine statistisch signifikante Stichprobe, ohne Zugriff von Twitter aber.
Habe ich ein ähnliches Projekt Analyse von Daten aus tweets. Wenn Sie nur werde das von einer reinen Sammlung von Daten/Analyse-Winkel, können Sie einfach kratzen eine der besseren Seiten, die sammeln diese tweets aus verschiedenen Gründen. Viele Websites können Sie die Suche nach hashtag, so werfen Sie in einem populär genug, hashtag und schon hast du Tausende von Ergebnissen. Ich habe gerade kratzte ein paar von diesen Websites für populäre hashtags, sammelte diese in einer umfangreichen Liste abgefragt, die Liste gegen die Website, und kratzte sich alle verwendbaren Informationen aus den Ergebnissen. Einige Websites können Sie auch exportieren Sie die Daten direkt, so dass diese Aufgabe noch einfacher. Sie bekommen eine Menge von Müll, die Ergebnisse, die Sie wahrscheinlich benötigen, um ein filter (spam, Fremdsprache, etc), aber das war der Schnellste Weg, arbeitete für unser Projekt. Twitter wird wahrscheinlich nicht gewähren, Sie in Ihrer Whitelist-status, so dass ich definitiv nicht drauf verlassen.
Es ist ziemlich gut tutorial von ars technica über die Verwendung der streaming-API n Python, könnte hier hilfreich sein.
Ansonsten könnte man versuchen tut es über
cURL
..