2011-02-13 189 views
0

我在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

我有2个问题:

A)你能告诉我什么是错的我与这两个网站的脚本?

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

回答

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的问题。

+0

你好吉姆,什么不工作很简单。该网页无法打开。我会尝试你的代码并让你知道。谢谢,伊夫 – Yex 2011-03-09 16:04:41