2014-11-12 24 views
15

Ich verwende die Tweepy-API zum Extrahieren von Twitter-Feeds. Ich möchte nur alle Twitter-Feeds einer bestimmten Sprache extrahieren. Der Sprachfilter funktioniert nur, wenn track Filter zur Verfügung gestellt wird. Der folgende Code gibt 406 Fehler:Twitter-Feeds nur nach Sprache filtern

l = StdOutListener() 
auth = OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 
stream = Stream(auth, l) 
stream.filter(languages=["en"]) 

Wie kann ich alle die Tweets von bestimmten Sprache zu extrahieren mit Tweepy?

+0

Haben Sie dieses Problem gelöst. Ich möchte auch spezifische Sprache tweet wie Japanisch extrahieren. – tktktk0711

Antwort

19

Sie können nicht (ohne besonderen Zugriff). Streaming Alle Tweets (ungefiltert) benötigen eine Verbindung zu the firehose, die nur in bestimmten Anwendungsfällen von Twitter gewährt wird. Ehrlich gesagt, die Firehose ist nicht wirklich notwendig - die richtige Verwendung von track kann Ihnen mehr Tweets als Sie wissen, was zu tun ist.

versuchen, etwas wie folgt aus:

stream.filter(languages=["en"], track=["a", "the", "i", "you", "u"]) # etc 

Filterung durch Wörter wie das wird Ihnen viele, viele Tweets bekommen. Wenn Sie echte Daten für die am häufigsten verwendeten Wörter möchten, lesen Sie diesen Artikel von Time: The 500 Most Frequently Used Words on Twitter. Sie können up to 400 Schlüsselwörter verwenden, aber das wird wahrscheinlich die 1% -Grenze von Tweets in einem bestimmten Zeitintervall erreichen. Wenn Ihr Parameter track mit 60% aller Tweets zu einem bestimmten Zeitpunkt übereinstimmt, erhalten Sie immer noch nur 1% (das sind viele Tweets).

+0

Danke !! Ich tippte 'stream.filter (lang = [" en "], track = [" something "])' – Krishh

2

Andere als gefilterte Tweets direkt bekommen, können Sie es filtern, nachdem Sie alle Tweets von verschiedenen Sprachen bekommen von:

tweets = api.search("python") for tweet in tweets: if tweet.lang == "en": print(tweet.text) #Do the stuff here

Hoffe, es hilft.