2012-12-09 47 views
1

作爲開發人員,我是twitter新用戶。我看到有人可以使用推文的id來下載數據集。然而twitter API有下載的限制。來自twitter的語料庫

有沒有更快的方法來做到這一點?

回答

2

如果你只是想抓住一個用戶名的微博,你可以這樣做:

import httplib 
import json 
import urllib2 
import pprint 

def feed(username, messages=50): 
    template = 'https://api.twitter.com/1/statuses/user_timeline.json?' + \ 
       'include_entities=false&include_rts=true&screen_name=%s&count=%i' 
    url = template % (username, messages) 
    output = urllib2.urlopen(url) 
    html = ''.join(output.readlines()) 
    tweet = json.loads(html) 
    # pprint.pprint(tweet) 
    return list(map(lambda t : t['text'], tweet)) 

result = feed('noelevans', messages=100) 
+0

@ 594380923你有用戶名和ID嗎? –

+0

@ 594380923我增加了另一個可以這樣工作的答案。將所有ID都放入列表中,然後可以將列表傳遞給饋送功能 –

+0

@ 594380923。是的,但是如果你「慢慢」走了。 api受這裏的限制:https://dev.twitter.com/docs/rate-limiting –

0

即使你沒有用戶名,你可以做到這一點得到了一組鳴叫:

import httplib 
import json 
import urllib2 
import pprint 

def feed(ids): 
    result = [] 
    template = 'https://api.twitter.com/1/statuses/show.json?id=%i&include_entities=true' 
    for id in ids: 
     url = template % id 
     output = urllib2.urlopen(url) 
     html = ''.join(output.readlines()) 
     tweet = json.loads(html) 
     # pprint.pprint(tweet) 
     result.append(tweet['text']) 
    return result 

tweets = [277496833788489728, 276760134124969984] 
result = feed(tweets) 
+0

@ 594380923您可以通過查看此答案中字典中的其他元素「tweet」來獲取此日期時間信息。要返回時間,請將result.append(tweet ['text'])改爲讀取result.append((tweet ['text'],tweet ['created_at'])) –

+0

@ 594380923我添加了一行評論)來漂亮地印刷tweet字典 - 你可以從twitter消息中獲得許多其他的東西 –