Perl 打开网站

Perl 打开网站,perl,Perl,我对Perl有点陌生。我的一个朋友让我给他写一个程序,可以在他最喜欢的出售船只网站上搜索特定的广告。这是一个非常方便的小程序,允许用户在多个网站上搜索特定的广告 下面是它的工作原理。我将网页加载到一个临时文件中,搜索匹配的广告并返回结果。它在大多数情况下工作正常,但我注意到一些网站无法加载,我不知道为什么 以下是加载页面并将其存储为临时文件的脚本: use LWP::UserAgent; use HTTP::Response; use URI::Heuristic; unless (def

我对Perl有点陌生。我的一个朋友让我给他写一个程序,可以在他最喜欢的出售船只网站上搜索特定的广告。这是一个非常方便的小程序,允许用户在多个网站上搜索特定的广告

下面是它的工作原理。我将网页加载到一个临时文件中,搜索匹配的广告并返回结果。它在大多数情况下工作正常,但我注意到一些网站无法加载,我不知道为什么

以下是加载页面并将其存储为临时文件的脚本:

use LWP::UserAgent;

use HTTP::Response;

use URI::Heuristic;

unless (defined ($content = get ($URL) )) { print "could not get $URL <br>"; }

open (DATABASE, ">$web_page_file");

print DATABASE "$content";

close (DATABASE);
使用LWP::UserAgent;
使用HTTP::Response;
使用URI::启发式;
除非(已定义($content=get($URL)){print“无法获取$URL
”;} 打开(数据库“>$web页面文件”); 打印数据库“$content”; 关闭(数据库);
# 我已经成功地在许多网站上运行了它,它运行得很好。但最近,有两个站点无法加载。它是:

我有两个问题:

A) 你能告诉我这两个网站的脚本有什么问题吗


B) 更重要的是,是否有一个诊断工具可以告诉我问题是什么(对于未来的问题站点)?

您发布的示例对我来说根本不起作用,并且您没有确切说明您给出的两个示例中有什么不起作用,因此很难调试您的示例。下面的方法很有效,我认为这是一种更干净的方式来获得你想要的东西:

#!/usr/bin/perl

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

my $URL = 'http://www.yourboatsite.com';
my $mech = WWW::Mechanize->new();  #Autocheck defaults to ON to check for success.
$mech->get($URL);  # Use :content_file option to auto-write to a file.

print $mech->content();

您可能还希望将条目标记为perl而不是mod perl,因为这不是mod_perl问题。

您好,Jim,不起作用的地方很简单。该网页无法打开。我会试试你的代码,让你知道。再次感谢YvesHello Jim,这一行“使用WWW::Mechanize;“导致我出现内部服务器错误”500内部服务器错误请求未完成。服务器遇到意外情况。“看来您是通过web服务器运行此操作的?您可能需要安装WWW::Mechanize模块和依赖项,因为它不是核心perl发行版的一部分。您可以查看服务器错误日志,以确定是什么导致了内部服务器错误。