如何改进我的Twitter流媒体抓取工具?

时间:2012-05-26 13:45:48

标签: perl twitter

我使用Streaming API做了一个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;

1 个答案:

答案 0 :(得分:2)

关于Twitter流,有几点要记住。首先,如果您的代码是瓶颈,传入推文的队列将溢出,您的连接将会死亡。所以很可能不是你的代码。

Twitter正在限制他们给予"常规"消费者,并收取全流量。所以你可能会达到速率限制,但很难确定。

测试您获得的推文百分比的一种方法是设置第二个帐户,该帐户随机发送应该在您的过滤器中捕获的推文。然后计算刮刀中捕获的那些推文的百分比。如果不是100%,你可能会受到限制。

相关问题