2

只是为了好玩,我正在编写一个 Perl 程序来检查给定的网站是否存在。就我的目的而言,如果我可以进入浏览器,输入网址并获得有意义的网页(意味着不是错误或“无法打开页面”消息),则存在一个网站。这样做的最佳方法是什么?最终,我希望能够为我的程序提供数百个 url 的列表。

我正在考虑对列表中的每个 url 进行 ping 操作以查看它们是否存在;但是,我对网络的了解并不多,所以这是最好的方法吗?

4

2 回答 2

7

在 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";;
}
于 2012-07-21T18:48:16.757 回答
1

不存在“ping 网页”这样的协议。您实际上必须请求资源,如果它被提供,它就存在。有几种方法可以解决,这里有几个:

  1. 使用 LWP 检索网页
  2. 检查现有网页可能很简单:

    #!/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/HEADHEAD返回资源标题,例如内容大小,并且比获取所有页面内容更快。

于 2012-07-21T18:47:20.360 回答