1

公開されている(ロックされていない)Twitterユーザーのすべてのツイートを取得しようとしています。私はRESTAPIを使用しています: http://api.twitter.com/1/statuses/user_timeline.json?screen_name = andy_murray&count = 200&page = 1 '

16ページ(ページパラメータ)を超えている間、それは許可します、したがって、3200ツイートを取得します。これは問題ありません。しかし、そのとき、そのような呼び出しのレート制限は1時間あたり150(!!!)であることがわかりました。これは、1時間に10未満のユーザークエリ(各16ページ)のようなものです。(uが認証する場合は350が許可されますが、それでも非常に少ない数です)

これを解決する方法について何かアイデアはありますか?ストリーミング\検索APIは適切ではないようです(?)。このデータを持っているように見えるWebサービスがいくつかあります。

ありがとう

4

3 に答える 3

2

リクエストをキューに入れてレート制限が許す限り作成す​​るか、複数のユーザーとして認証されたリクエストを作成することができます。各ユーザーには、1時間あたり350のリクエストがあります。

于 2011-04-16T04:57:53.273 に答える
2

1つのアプローチは、ストリーミングAPI (または、アプリケーションに適している場合は、より具体的なユーザーストリーム)を使用して、従来のレート制限に煩わされることなく、ターゲットユーザーから発生したすべてのツイートの収集を開始することです。 、次にREST APIを使用して、それらのユーザーの過去のツイートを埋め戻します。

確かに、1時間あたりの認証済みリクエストは350しかありませんが、ハーベスタを24時間稼働させた場合でも、1日あたりのツイート数は1,680,000です(350リクエスト/時間*24時間/日*200ツイート/リクエスト)。

したがって、たとえば、ユーザーあたり1日あたり1,000ツイート(5API呼び出し@呼び出しあたり200ツイート)を取得することにした場合、1日あたり1,680ユーザータイムライン(1時間あたり70タイムライン)を実行できます。次に、翌日、statuss / user_timelineリクエストのmax_idパラメーターとして、ユーザーごとに最も古いステータスIDを使用して、次の1,000件のツイートを収集することで中断したところから開始します。

ストリーミングAPIは、ターゲットユーザーがツイートする新しいステータスに遅れないようにし、REST API呼び出しは、約4日で、それらのユーザーの過去のツイートに対するTwitterのフェッチ制限に達し始めます。その後、リストに追加することで、ストリーミングエンドポイントからフェッチするユーザーを追加できます。また、follow最大に達したユーザーの過去のツイートのフェッチを停止し、新しいターゲットグループのツイートのフェッチを開始できます。

于 2011-04-17T04:41:54.187 に答える
0

画面名で検索できるため、SearchAPIはニーズに適しているようです。SearchAPIのレート制限がRESTAPIのレート制限よりも高くなっています。

于 2011-04-16T12:46:44.287 に答える