打开网站

时间:2011-02-13 00:40:33

标签: perl

我是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);

我已成功在很多网站上运行它并且运行正常。但最近,2个网站将无法加载。它是:

http://www.babord.ca

http://www.sailboatlistings.com

我有两个问题:

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

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

1 个答案:

答案 0 :(得分:1)

您发布的示例对我来说根本不起作用,并且您没有准确说明您提供的两个示例无法正常工作,因此调试样本很困难。下面的工作,我认为是一个更清洁的方式来获得你正在寻找的东西:

#!/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问题。