只是为了好玩,我正在编写一个 Perl 程序来检查给定的网站是否存在。就我的目的而言,如果我可以进入浏览器,输入网址并获得有意义的网页(意味着不是错误或“无法打开页面”消息),则存在一个网站。这样做的最佳方法是什么?最终,我希望能够为我的程序提供数百个 url 的列表。
我正在考虑对列表中的每个 url 进行 ping 操作以查看它们是否存在;但是,我对网络的了解并不多,所以这是最好的方法吗?
只是为了好玩,我正在编写一个 Perl 程序来检查给定的网站是否存在。就我的目的而言,如果我可以进入浏览器,输入网址并获得有意义的网页(意味着不是错误或“无法打开页面”消息),则存在一个网站。这样做的最佳方法是什么?最终,我希望能够为我的程序提供数百个 url 的列表。
我正在考虑对列表中的每个 url 进行 ping 操作以查看它们是否存在;但是,我对网络的了解并不多,所以这是最好的方法吗?
在 Perl (LWP) 中使用 WWW 库:
#!/usr/bin/perl
use LWP::Simple;
my $url = 'http://www.mytestsite.com/';
if (head($url)) {
print "Page exists\n";
} else {
print "Page does not exist\n";;
}
不存在“ping 网页”这样的协议。您实际上必须请求资源,如果它被提供,它就存在。有几种方法可以解决,这里有几个:
检查现有网页可能很简单:
#!/usr/bin/env perl
use strict;
use warnings;
use LWP::Simple qw(head);
head('http://www.perlmeme.org') or die 'Unable to get page';
与命令行工具相同的解决方案是lwp-request
/HEAD
。HEAD
返回资源标题,例如内容大小,并且比获取所有页面内容更快。