2016-05-12 67 views
0

我想要包含特定單詞的2013年5月至2014年5月的所有推文。在Python中搜索特定時間窗口中的推文

我查看了GET search/tweets的API文檔,但它似乎不允許您提供時間窗口,只有日期,並且它會在7天前檢索推文。

如何在python中檢索這些推文? (基本上,我想編寫一個腳本,做什麼 Twitter advanced search確實

+0

您應該先嚐試幾件事,然後針對您可能面臨的問題提出更具體的問題。 – sotoz

回答

0

按照Twitter的搜索API文檔,你想要的查詢是不可能的:https://dev.twitter.com/rest/public/search

Twitter的反對取樣搜索API搜索近期推文的發表在過去7天 。

超越過去7天,你想要什麼來實現,只能通過在Twitter上手動搜索的賬戶來完成。

您可以使用您引用的高級搜索運算符來嘗試twarc ,但我不確定它是否會根據Twitter搜索API文檔查詢整年。

雖然不是基於Python的,一個替代方案是使用https://webrecorder.io/

滾動到要記錄或試圖奪取整個飼料的時間。請注意自動滾動選項。

0

您將不得不將您的Twitter提要轉儲到JSON並解析它以獲取所需的推文。我只是使用tweepy和json模塊將它們放在Python中。

#!/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

我需要「一般」推文,而不是我的。我擔心沒有訪問時間表的可能性,我是對的嗎? 我沒有用戶,我可以用作過濾器的唯一參數是語言(意大利語),時間窗口(2013年5月至2014年5月)以及與我有興趣構建統計數據的概念相關的關鍵字。 無論如何您的答案! – Fed

+0

api.user_timeline int上面的代碼可以被修改以獲取其他用戶的推文。要小心,他們的API每小時都有一個請求計時器,如果你開始變得太大,它會將你鎖定一段時間。導入tweepy並執行dir(tweepy)查看您可以使用的所有方法。此外,一個好的谷歌搜索將讓你到文檔。他們的例子頁面寫得很好。 –