2013-07-12 1 views
-1

제가 스캐너를 테스트 할 때 스크립트를 테스트하려고하면 일부 엔진에서 공백 결과가 발생합니다. 결과, 누군가가 펄을 쓰는 것을 도울 수 있습니까?Perl Google Yahoo 등 엔진이 결과를 가져 오지 못했습니다. perl 전문가가 도움이 필요합니다.

감사

sub google() { 
my @list; 
my $key = $_[0]; 
for (my $i=0; $i<=1000; $i+=100){ 
    my $search = ("http://www.google.com/search?q=".key($key)."&num=100&filter=0&start=".$i); 
    my $res = search_engine_query($search); 
    while ($res =~ m/<a href=\"?http:\/\/([^>\"]*)\//g) { 
     my $link = $1; 
     if ($link !~ /google/){ 
      my @grep = links($link); 
      push(@list,@grep); 
     } 
    } 
} 
return @list; 

}

sub search_engine() { 
my (@total,@clean); 
my $chan = $_[0]; 
my $bug = $_[1]; 
my $dork = $_[2]; 
my $engine = $_[3]; 
my $logo = $_[4]; 
if ($engine eq "GooGLe") { my @google = google($dork); push(@total,@google); } 
if ($engine eq "AllTheWeb") { my @alltheweb = alltheweb($dork); push(@total,@alltheweb); } 
if ($engine eq "Bing") { my @bing = bing($dork); push(@total,@bing); } 
if ($engine eq "ALtaViSTa") { my @altavista = altavista($dork); push(@total,@altavista); } 
if ($engine eq "AsK") { my @ask = ask($dork); push(@total,@ask); } 
if ($engine eq "UoL") { my @uol = uol($dork); push(@total,@uol); } 
if ($engine eq "YahOo") { my @yahoo = yahoo($dork); push(@total,@yahoo); } 
@clean = clean(@total); 
&msg("$chan","$logo([email protected]$engine15)12 Total:4 (".scalar(@total).")12 Clean:4 (".scalar(@clean).")"); 
return @clean; 

}

if ($engine =~ /google/i) { 
    if (my $pid = fork) { waitpid($pid, 0); } 
    else { if (fork) { exit; } else { 
     &lfc($chan,$bug,$dork,"GooGLe"); 
    } exit; } 
} 

당신은 여기에서 n0body Scanner을 다운로드 할 수 있습니다.

답변

1

한 가지 예로, 인수를 전달하는 함수에 대해 인수가없는 프로토 타입을 사용하고 있습니다. Don't do that.

또 다른 이유는 결과에 만족하지 않을 때마다 응답을 조사하고 있습니까? 응답이 200이 아닌 다른 것입니까? 응답에 검색 엔진의 오류 메시지가 포함되어 있습니까? 혼자 라인을 바탕으로

는 :

&msg("$chan", 
"$logo([email protected]$engine15)12 Total:4 (".scalar(@total).")12 Clean:4 (".scalar(@clean).")"); 

나는 또한 당신이 use strictuse warnings를 사용하지 않는 것으로 결론 지었다. Do that.

+0

아니, Google에 대한 검색 결과를 제공하지 않았다. 일부 결과가 나왔지만 많이 응답하지 못했습니다. 예 응답에 오류 메시지가 포함되었습니다. –

+1

@Doni Anugerah - 서스펜스로 지키지 마십시오. 오류 메시지 란 무엇입니까? – mob

+0

고마워,하지만 같은 문제가 생겼어. 내가 업로드 한 스크립트를 확인해 주면 형제를 도울 수 있니? –