2013-03-18 8 views
0

좋아, 그래서 펄에서 루프를 통해 LWP 요청을하는 법을 알고 있습니다. 하지만 나는 웹 사이트에서 URL을 긁어 자동으로 루프에 방문하는 URL에 넣을 수 있는지 알고 싶습니다. ??URL을 긁어서 LWP Perl에 사용하십시오.

#!usr/bin/perl 

for ($i=0;$i<200;$i++) 
{ 

use strict; 
use LWP::UserAgent; 
use warnings; 
my $ua = new LWP::UserAgent(agent => 'USER AGENT'); 
my $response = $ua->get("http://example.com"); 
print $response->code,' ', $response->message,"\n"; 

sleep 2; 

} 

그래서 지금은 도메인에서 URL을 긁어하고 example.com에 대한 것을 사용하고 또한 긁힌 자국하는 모든 새로운 URL을 방문하고 싶습니다.

+0

내가 그것에 대해 자습서를 작성했습니다 : http://blogs.perl.org/users/stas/2013/01/web-scraping-with-modern-perl-part-1.html – creaktive

답변

4

나는 웹 사이트에서 URL을 긁어 내고 자동으로 URL을 루프에 넣는 지 알고 싶습니다. ??

이를 대기열이라고하며 pushshift을 사용하여 쉽게 구현할 수 있습니다.

my @to_visit = (...initial URLs...); 
while (@to_visit) { 
    my $url = shift(@to_visit); 
    my $content = ...Download the file...; 
    my @extracted = ...Extract the URLs...; 
    push @to_visit, @extracted; 
} 

물론 이미 방문한 URL은 건너 뛰고 싶을 것입니다.

my %seen; 
my @to_visit = grep !$seen{$_}++, (...initial URLs...); 
while (@to_visit) { 
    my $url = shift(@to_visit); 
    my $content = ...Download the file...; 
    my @extracted = ...Extract the URLs...; 
    push @to_visit, grep !$seen{$_}++, @extracted; 
} 
+0

확인 하지만 그 스크립트에서 어떻게 작동합니까? – user1796805

+0

내가 지정한 페이지를 다운로드하려면 코드를 입력하십시오. – ikegami

+0

나는 그것이 매우 어리 석다는 것을 알고 있지만 그것을 사용하는 방법을 이해하지 못한다; ( – user1796805

관련 문제