【发布时间】:2013-05-13 10:32:40
【问题描述】:
我正在尝试检测链接是否损坏,就好像它是一个网址一样,我可以将其粘贴到我的浏览器中并找到一个网页。到目前为止,我已经尝试了两种在网上找到的方法,但都给了我误报(LWP::UserAgent 和 LWP::Simple)。
#!/usr/bin/perl -w
use strict;
use LWP::UserAgent;
my $url1 = 'http://www.gutenberg.org';
my $url2 = 'http://www.gooasdfzzzle.com.no/thisisnotarealsite';
my $ua = LWP::UserAgent->new;
$ua->agent("Mozilla/8.0"); # Pretend to be Mozilla
my $req = HTTP::Request->new(GET => "$url1");
my $res = $ua->request($req);
if ($res->is_success) {
print "Success!\n";
} else {
print "Error: " . $res->status_line . "\n";
}
$req = HTTP::Request->new(GET => "$url2");
$res = $ua->request($req);
if ($res->is_success) {
print "Success!\n";
} else {
print "Error: " . $res->status_line . "\n";
}
这给了我以下输出:
Success!
Success!
然后是
#!/usr/bin/perl -w
use strict;
use LWP::Simple;
my $url1 = 'http://www.gutenberg.org';
my $url2 = 'http://www.gooasdfzzzle.com.no/thisisnotarealsite';
if (head("$url1")) {
print "Yes\n";
} else {
print "No\n";
}
if (head("$url2")) {
print "Yes\n";
} else {
print "No\n";
}
这给了我一个输出:
Yes
Yes
我在这里遗漏了什么吗?
【问题讨论】:
-
您的代码对我有用。
perl lwp_test.pl Success! Error: 500 Can't connect to www.gooasdfzzzle.com.no:80 (Bad hostname)您是否有“有用”的代理或网关服务 - 我建议您print $res->content();以获得更多线索。 -
@TylerHills
perl -v? -
我的工作正常。
标签: perl lwp broken-links