2014-11-12 15 views
15

Sto usando Tweepy API per estrarre i feed di Twitter. Voglio estrarre tutti i feed di Twitter solo da una lingua specifica. Il filtro della lingua funziona solo se viene fornito il filtro track. Il codice seguente restituisce 406 errore:Filtra i feed Twitter solo per lingua

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"]) 

Come posso estrarre tutte i tweets da certa lingua usando Tweepy?

+0

Hai risolto questo problema. Voglio anche estrarre tweet in linguaggio specifico come il giapponese. – tktktk0711

risposta

19

Non è possibile (senza accesso speciale). Streaming tutti i i tweets (non filtrati) richiede una connessione a the firehose, che è concessa solo in casi d'uso specifici da parte di Twitter. Onestamente, il firehose non è realmente necessario - l'uso corretto di track può darti più tweet di quello che sai con cosa fare.

Provare a utilizzare qualcosa di simile:

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

Filtro per parole come queste ti porterà molti, molti tweets. Se vuoi dati reali per le parole più usate, dai un'occhiata a questo articolo dal tempo: The 500 Most Frequently Used Words on Twitter. Puoi utilizzare le parole chiave up to 400, ma probabilmente si avvicineranno al limite dell'1% dei tweet in un dato intervallo di tempo. Se il tuo parametro track corrisponde al 60% di tutti i tweet in un dato momento, riceverai comunque solo l'1% (che è un MOLTO di tweet).

+0

Grazie !! Stavo scrivendo 'stream.filter (lang = [" en "], track = [" something "])' – Krishh

2

altro che ottenere direttamente tweets filtrati, è possibile filtrare dopo aver ottenuto tutti i tweet di lingue diverse da:

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

Speranza che aiuta.

Problemi correlati