5

Web サイトからリンクを取得してテキスト ファイルに保存するスクリプトを作成しました。

今、私は正規表現に取り組んでいるのでphp?dl=、テキストファイルからURLに含まれるリンクを取得します:

例えば:www.example.com/site/admin/a_files.php?dl=33931

dlサイトのボタンにカーソルを合わせると、ほとんどのアドレスが表示されます。クリックしてダウンロードするか、「右クリックで保存」できます。

ファイルをダウンロードする指定されたアドレスのコンテンツをダウンロードする必要があるため、これを達成する方法について疑問に思ってい*.txtます。もちろんすべて台本から。

4

3 に答える 3

8

WWW::Mechanizeあなたの新しい親友を作りましょう。

理由は次のとおりです。

  • 特定の正規表現に一致する Web ページ上のリンクを識別できます (/php\?dl=/この場合)。
  • follow_linkメソッドを介してこれらのリンクをたどることができます
  • getそれらのリンクのターゲットを指定してファイルに保存できます

必要なリンクを中間ファイルに保存する必要はありません。仕事に適したツールがあれば、人生は楽しくなります...


use strict;
use warnings;
use WWW::Mechanize;

my $url  = 'http://www.example.com/';
my $mech = WWW::Mechanize->new();

$mech->get ( $url );

my @linksOfInterest = $mech->find_all_links ( text_regex => qr/php\?dl=/ );

my $fileNumber++;

foreach my $link (@linksOfInterest) {

    $mech->get ( $link, ':contentfile' => "file".($fileNumber++).".txt" );
    $mech->back();
}
于 2010-07-06T11:55:03.977 に答える
5

LWP::UserAgentでファイルをダウンロードできます:

my $ua = LWP::UserAgent->new();  
my $response = $ua->get($url, ':content_file' => 'file.txt');  

または、ファイルハンドルが必要な場合:

open my $fh, '<', $response->content_ref or die $!;
于 2010-07-06T11:56:50.743 に答える