簡體   English   中英

如何使用Twython返回100多個Twitter搜索結果?

[英]How do I return more than 100 Twitter search results with Twython?

在API上返回搜索結果時,Twitter每個“頁面”只返回100條推文。 它們提供了max_idsince_id在返回search_metadata可以用來作為參數,以獲得早/晚的鳴叫。

Twython 3.1.2文檔表明這種模式是搜索的“舊方法”:

results = twitter.search(q="xbox",count=423,max_id=421482533256044543)
for tweet in results['statuses']:
    ... do something

這是“ 新方式 ”:

results = twitter.cursor(t.search,q='xbox',count=375)
for tweet in results:
    ... do something

當我執行后者時,它似乎無休止地迭代相同的搜索結果。 我正在嘗試將它們推送到CSV文件,但它推動了大量的重復。

使用Twython搜索大量推文的正確方法是什么,並迭代一組獨特的結果?

編輯:這里的另一個問題是當我嘗試使用生成器進行迭代時( for tweet in results: ,它會反復循環,而不會停止。 啊 - 這是一個錯誤... https://github.com/ryanmcgrath/twython/issues/300

我遇到了同樣的問題,但似乎你應該使用max_id參數批量遍歷用戶的時間軸。 根據Terence的答案,批次應該是100(但實際上,對於user_timeline 200是最大計數),並且只需將max_id設置為上一組返回的推文中的最后一個減去一(因為max_id包括在內)。 這是代碼:

'''
Get all tweets from a given user.
Batch size of 200 is the max for user_timeline.
'''
from twython import Twython, TwythonError
tweets = []
# Requires Authentication as of Twitter API v1.1
twitter = Twython(PUT YOUR TWITTER KEYS HERE!)
try:
    user_timeline = twitter.get_user_timeline(screen_name='eugenebann',count=200)
except TwythonError as e:
    print e
print len(user_timeline)
for tweet in user_timeline:
    # Add whatever you want from the tweet, here we just add the text
    tweets.append(tweet['text'])
# Count could be less than 200, see:
# https://dev.twitter.com/discussions/7513
while len(user_timeline) != 0: 
    try:
        user_timeline = twitter.get_user_timeline(screen_name='eugenebann',count=200,max_id=user_timeline[len(user_timeline)-1]['id']-1)
    except TwythonError as e:
        print e
    print len(user_timeline)
    for tweet in user_timeline:
        # Add whatever you want from the tweet, here we just add the text
        tweets.append(tweet['text'])
# Number of tweets the user has made
print len(tweets)

根據官方Twitter API文檔

數可選

每頁返回的推文數量,最多為100

你需要重復調​​用python方法。 但是,無法保證這些將是下一個N,或者如果推文真的進入它可能會錯過一些。

如果您想要在一個時間范圍內發布所有推文,您可以使用流式api: https ://dev.twitter.com/docs/streaming-apis並將其與oauth2模塊結合使用。

我怎么能從Twitter的流媒體API中消費推文並將它們存儲在mongodb中

python-twitter流API支持/示例

免責聲明:我實際上沒有試過這個

作為使用Twython為搜索查詢返回100條推文的問題的解決方案,這里是顯示如何使用“舊方式”完成它的鏈接:

具有next_results的Twython搜索API

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM