1

python-twitter API を使用して、ユーザーのフレンド ネットワークを取得しようとしています。特定の Twitter ユーザーがフォローしているすべてのアカウントの ID を取得する getFriendIDs() メソッドを使用しています。以下は、私のテスト コードの一部を抜粋したものです。

for item in IdList:
    aDict[item] = api.GetFriendIDs(user_id=item,count=4999)
    print "sleeping 60"
    time.sleep(66)
    print str(api.MaximumHitFrequency())+" The maximum hit frequency"
    print api.GetRateLimitStatus()['resources']['friends']['/friends/ids']['remaining']

IdList には (Twitter ユーザー アカウントの) 35 の ID があり、アイテムごとに、ID 'item' を持つ現在のユーザーがフォローしている最大 4999 の ID を取得しています。レート制限ウィンドウが 60 分から 15 分に変更された twitter による新しいレート制限と、サーバーに対して 1 分間に複数のリクエストを行わないようにアドバイスしている事実 (api.MaximumHitFrequency( )))。つまり、基本的に 15 分間で 15 件のリクエストです。それはまさに私がやっていることです。実際、60秒ではなく66秒ごとにサーバーにリクエストを送信していますが、6回のリクエスト後にレート制限エラーが発生します。なぜこれが起こっているのかわかりません。他の誰かがこの問題を抱えている場合はお知らせください。

4

1 に答える 1

0

https://github.com/bear/python-twitter/wiki/Rate-Limited-API---How-to-deal-withをご覧ください。

また、python-twitter コードの新しいバージョンを使用すると役立つ場合があります。MaximumHitFrequency および GetRateLimitStatus メソッドがhttps://github.com/bear/python-twitter/commit/25cccb81fbeb4c630a0024981bc98f7fb41f3933で変更されました。

于 2013-08-28T09:09:21.163 に答える