我做了一個使用Streaming API的Twitter抓取工具。它在perl中使用Net:Twitter:Stream進行編程。我認爲它正在檢索很少的推文。我昨天離開它跟蹤了電視連續劇的推文,並且我收到了30860條推文。我認爲這是一個低價值。 您對此有何看法?有沒有其他的Perl庫可以使用? 我會把我的部分代碼放在這裏,看看是否有什麼問題。如何改進我的Twitter流式抓取工具?
謝謝大家
蒂亞戈
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;
您的腳本不包含任何執行代碼,只包含子例程。你的子程序也是嵌套的,這不是一個好主意,並且可能不會做你認爲它的作用。除非你知道他們在做什麼,你應該避免使用原型,例如'sub coletar {...}',而不是'sub coletar(){...}'。你應該編輯你的問題,幷包括實際上做了些什麼的代碼。 – TLP
對不起,我忘了調用這個函數,但是我在代碼的最後做了這個。我將coletar(){..}更改爲coletar {...},我沒有看到任何差異。我會更新這個問題。但是,它的工作方式是一樣的。自從昨天晚上到現在,它共收集了80319條推文,我認爲這是一個低價值。 – Thiago
你有沒有嘗試過這個模塊:AnyEvent :: Twitter :: Stream?我在Perl Mova中看到他們在行動。 –