2

StreamingAPIを使用してTwitterクローラーを実行しました。Net:Twitter:Streamを使用してperlでプログラムされます。ツイートを少し取得していると思います。私は昨夜テレビシリーズのツイートを追跡するためにそれを残しました、そして私はたった30860のツイートを得ました。低い値だと思います。あなたはそれについてどう思いますか?私が使用できる他のperlライブラリはありますか?ここにコードの一部を入れて、何か問題がないか確認します。

みんなありがとう

チアゴ

use JSON;
use Solr;
use Net::Twitter::Stream;
sub coletar{
    Net::Twitter::Stream->new ( user => $username, pass => $password,
                    callback => \&got_tweet,
                    connection_closed_cb => \&connection_closed,
                    track => $track); #$track has my string search;
    sub connection_closed {
        if ($count==0){
           sleep 10;
        }
        elsif($count==1){
           sleep 20;
        }
        else{
           sleep 240;
        }
        $count++;
        warn "Connection to Twitter closed";
        coletar();              #Recomeçando o download de tweets.
    }
    sub got_tweet {
        $cont=0;
        my ( $tweet, $json ) = @_; 
        # Here I save the tweet in my NoSQL database...
    }
}
coletar;
4

1 に答える 1

2

Twitterストリームについて覚えておくべきことがいくつかあります。まず、コードがボトルネックの場合、着信ツイートのキューがオーバーフローし、接続が切断されます。したがって、それはあなたのコードではないかもしれません。

Twitterは、「通常の」消費者に提供するツイートの数を制限し、フルストリームの料金を請求しています。したがって、レート制限に達している可能性がありますが、確実にするのは困難です。

取得しているツイートの割合をテストする1つの方法は、フィルターでキャッチする必要のあるツイートをランダムに送信する2番目のアカウントを設定することです。次に、スクレーパーでキャッチされたツイートの割合を数えます。100%でない場合は、レートが制限されている可能性があります。

于 2012-06-05T22:12:56.717 に答える