스트리밍 API를 사용하여 트위터 크롤러를 만들었습니다. 이것은 Net:Twitter:Stream을 사용하여 perl로 프로그래밍됩니다. 나는 그것이 짹짹이 몇 개를 검색하고 있다고 생각합니다. 나는 지난 밤에 TV 시리즈 트윗을 추적하도록 남겨 두었고 나는 단지 30860 개의 트윗을 얻었다. 나는 그것이 낮은 가치라고 생각한다. 그것에 대해 어떻게 생각하십니까? 내가 사용할 수있는 다른 펄 라이브러리가 있습니까? 잘못된 코드가 있는지 확인하기 위해 여기에 제 코드를 입력하겠습니다.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;
스크립트에 실행 코드가없고 서브 루틴 만 있습니다. 서브 루틴도 중첩되어 있으므로 좋은 생각이 아니므로 아마도 생각했던대로 작동하지 않을 것입니다. 프로토 타입을 사용하는 방법을 모르는 경우 프로토 타입을 사용하지 않는 것이 좋습니다. 'subcoletar {...} '이 아니라''subcoletar (... {{}' '이 아닙니다. 질문을 편집하고 실제로 무언가를하는 코드를 포함시켜야합니다. – TLP
죄송합니다. 함수를 호출하는 것을 잊어 버렸지 만 코드가 끝날 때 수행합니다. 나는 coletar() {...}를 coletar {...}로 바꿨고 어떤 차이는 보이지 않습니다. 나는 그 질문을 갱신 할 것이다. 하지만, 같은 방식으로 작동합니다. 어제 밤부터 지금까지 80319 개의 짹짹을 뒤집었고 나는 그것이 낮은 가치라고 생각합니다. – Thiago
이 모듈을 사용해 보셨습니까? AnyEvent :: Twitter :: Stream? 나는 Perl Mova에서 행동하는 것을 보았다. –