era*_*oil 4 perl download www-mechanize
我刚刚创建了一个脚本来从网站上获取链接,然后将它们保存到文本文件中.
现在我正在我的正则表达式,因此会抓住它包含链接php?dl=
从文本文件的URL:
例如: www.example.com/site/admin/a_files.php?dl=33931
它几乎是您将鼠标悬停在dl
网站上的按钮上时获得的地址.您可以从中单击下载或"右键单击保存".
我只是想知道如何做到这一点,不必下载指定的地址,将下载的内容*.txt
文件.一切都来自剧本.
成为WWW::Mechanize
你最好的朋友.
原因如下:
/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();
}
Run Code Online (Sandbox Code Playgroud)
您可以使用LWP::UserAgent下载文件:
my $ua = LWP::UserAgent->new();
my $response = $ua->get($url, ':content_file' => 'file.txt');
Run Code Online (Sandbox Code Playgroud)
或者,如果您需要文件句柄:
open my $fh, '<', $response->content_ref or die $!;
Run Code Online (Sandbox Code Playgroud)