0

わかりましたので、ループ内で Perl を使用して LWP get リクエストを作成する方法を知っています。しかし、ウェブサイトから URL をスクレイピングし、それを自動的に URL に入れてループ内でアクセスできるかどうかを知りたいですか??

#!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にアクセスするたびにスクレイピングしたいと考えています。

4

1 に答える 1

4

ウェブサイトから URL をスクレイピングして、それを自動的に URL に入れ、ループ内でアクセスできるかどうかを知りたいですか??

うん!pushこれはキューと呼ばれ、 and を使用して簡単に実装できます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;
 }
于 2013-03-18T19:08:26.817 に答える