3

私は python が初めてですTwitter API
Twitterで認証を設定しましたが、正常に機能する検索を試しました。

t = twitter.Twitter(auth=auth)    
tt = t.search.tweets(q="stackoverflow",rpp=50)

これはうまくいき、出力を読むことができます。

しかし、私が試してみると:

for page in range(1,6):
    tt = t.search.tweets(q="stackoverflow", rpp=100, page=page)

これはエラーでクラッシュします:

details: {"errors":[{"code":44,"message":"page parameter is invalid"}]}

Twitter ページを調べたところ、オプションのパラメーターとして page パラメーターは問題ないようです: https://dev.twitter.com/docs/api/1/get/search

または、レートがリクエストごとに 100 件の結果に制限されている場合、より多くの検索結果を取得するにはどうすればよいですか。それを回避する別の作業はありますか?

4

1 に答える 1

1

この値を使用しmax_idて、結果を反復処理する必要があります。に最初のリクエストを行い、結果をTwitter API読み取りmax_id、次のリクエストで送信します。

からdocs:

max_id を正しく使用するには、タイムライン エンドポイントへのアプリケーションの最初のリクエストでカウントのみを指定する必要があります。この応答と後続の応答を処理するときは、受信した最小の ID を追跡してください。この ID は、次のリクエストの max_id パラメータの値として渡す必要があります。これにより、max_id パラメータの値以下の ID を持つツイートのみが返されます。max_id パラメーターが含まれているため、次の図に示すように、一致する ID を持つツイートが実際に再度返されることに注意してください。

ここに画像の説明を入力

使用Twython:

from twython import Twython

twitter = Twython(APP_KEY, access_token=ACCESS_TOKEN)

# Initial request
result = twitter.search(q='stackoverflow', count=100)

# Get max_id of results
next_max_id = result['search_metadata']['next_results'].split('max_id=')[1].split('&')[0]
# Use max_id in next request 
result = twitter.search(q='stackoverflow', count=100, max_id=next_max_id)
于 2016-03-26T14:25:51.200 に答える