2013-03-18 2 views
0

Хорошо, поэтому я знаю, как сделать запрос LWP с Perl в цикле. Но я хотел бы знать, возможно ли его очистить Url от веб-сайта и автоматически включить это в URL-адрес, чтобы посещать цикл?Scrape 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-адрес для посещения в цикле?

Yup! Это называется очередью, и ее можно реализовать тривиально, используя push и shift.

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

 Смежные вопросы

  • Нет связанных вопросов^_^