我使用 Streaming API 做了一个 Twitter 爬虫。它是使用 Net:Twitter:Stream 在 perl 中编程的。 。我认为它检索到的推文很少。昨晚我让它跟踪电视剧推文,结果我只收到了 30860 条推文。我认为这是一个低值(value)。 你怎么看待这件事?还有其他我可以使用的 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;
请您参考如下方法:
关于 Twitter 信息流,有几点需要牢记。首先,如果您的代码是瓶颈,传入推文的队列将溢出,您的连接将中断。所以它很可能不是你的代码。
Twitter 正在限制向“普通”消费者提供的推文数量,并对全流收费。因此,您可能会达到速率限制,但很难确定。
测试您收到的推文百分比的一种方法是设置第二个帐户,该帐户随机发送应在过滤器中捕获的推文。然后计算您的抓取工具中捕获的推文的百分比。如果不是 100%,您可能会受到速率限制。