2016-05-12 5 views
0

Ich möchte alle Tweets von Mai 2013 bis Mai 2014 mit einem bestimmten Wort.Suche nach Tweets in einem bestimmten Zeitfenster in Python

Ich schaute auf die API-Dokumentation für GET search/tweets, aber es scheint, dass es Ihnen nicht erlaubt, ein Zeitfenster zu geben, nur ein Datum und es wird Tweets bis zu 7 Tage vorher abrufen.

Wie kann ich diese Tweets in Python abrufen? (Im Grunde möchte ich ein Skript schreiben, das tut, was die Twitter advanced search tut

+0

Sie sollten zuerst ein paar Dinge ausprobieren und dann eine spezifischere Frage zu einem Problem stellen. – sotoz

Antwort

0

Nach der Der Dokumentation Twitter Search API, die Abfrage, die Sie wollen, ist nicht möglich: https://dev.twitter.com/rest/public/search

Die API Twitter Suche Suche gegen eine Probenahme der neuesten Tweets in den letzten 7 Tage veröffentlicht.

Jenseits der letzten 7 Tage, was Sie wollen, nur erreichen, kann durch manuelle Suche ein Konto auf Twitter erfolgen.

Sie könnten twarc mit den erweiterten Suchoperatoren ausprobieren, die Sie referenziert haben, aber ich bin nicht sicher, ob es ein ganzes Jahr nach der Twitter Search API-Dokumentation abfragen wird.

Obwohl nicht auf der Grundlage Python, eine Alternative wäre https://webrecorder.io/

Blättern Sie zu der Zeit, die Sie aufnehmen möchten, benutzen oder versuchen, das gesamte Futter zu erfassen. Beachten Sie auch die automatische Bildlauffunktion.

0

Sie müssen Ihren Twitter-Feed zu JSON exportieren und für die gewünschten Tweets analysieren. Ich habe das in Python mit den Modulen tweepy und json zusammengefasst.

#!/usr/bin/env python 

import tweepy 
from tweepy import OAuthHandler 
import json 


def process_or_store(tweet): 
    converted = json.dumps(tweet) 
    parsed = json.loads(converted) 
    return parsed 


access_token = '' 
access_secret = '' 
consumer_key = '' 
consumer_secret = '' 
auth = OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_secret) 
api = tweepy.API(auth) 

for tweet in tweepy.Cursor(api.user_timeline).items(): 
    j = process_or_store(tweet._json) 
    m2013 = ['May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', '2013'] 
    m2014 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', '2014'] 

    if all(x in j['created_at'] for x in m2013): 
     print "%s -- %s" % (j['created_at'], j['text']) 
    elif all(x in j['created_at'] for x in m2014): 
     print "%s -- %s" % (j['created_at'], j['text']) 
+0

Ich brauche Tweets "im Allgemeinen", nicht meins. Ich bin besorgt, dass es keine Möglichkeit gibt, sie zu bekommen, ohne auf eine Zeitleiste zuzugreifen, oder? Ich habe keine Benutzer, die einzigen Parameter, die ich als Filter verwenden kann, sind die Sprache (Italienisch), das Zeitfenster (Mai 2013-Mai 2014) und die Schlüsselwörter, die mit dem Konzept verbunden sind, an dem ich meine Statistiken erstellen möchte. Danke trotzdem für deine Antwort! – Fed

+0

api.user_timeline Der obige Code kann geändert werden, um Tweets anderer Benutzer zu erhalten. Seien Sie vorsichtig, ihre API hat einen Anforderungstimer pro Stunde, der Sie für eine Weile aussperrt, wenn Sie zu groß werden. Importiere Tweepy und führe ein Verzeichnis (Tweepy) aus, um alle Methoden zu sehen, die du verwenden kannst. Auch eine gute Google-Suche bringt Sie zur Dokumentation. Ihre Beispielseite ist ziemlich gut geschrieben. –

Verwandte Themen