2

我使用 Streaming API 做了一个 Twitter 爬虫。它是在 perl 中使用Net:Twitter:Stream编写的。我认为它正在检索一些推文。昨晚我离开它跟踪电视剧推文,我只收到了 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 正在限制他们向“普通”消费者提供的推文数量,并对全流收费。因此,您可能会达到速率限制,但很难确定。

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

于 2012-06-05T22:12:56.717 回答