小编Den*_*nis的帖子

我的Perl教程有更多问题

感谢所有帮助我实现这一目标的人.

现在我的新问题.我正在使用2003年编写的一本书,该教程试图抓住一个已经改变的页面.

原始地址是:" http://www.oreilly.com/catalog/prdindex.html "此页面不再存在,但会重定向到新页面:" http://oreilly.com/store/complete.html "

问题"我认为"是html代码在7年内发生了变化.代码曾经是这样的:

<tr bgcolor="#ffffff">
<td valign="top">
<a href="http://oreilly.com/catalog/googlehks">Google Hacks</a><br />
</td>
<td valign="top" nowrap="nowrap">0-596-00447-8</td>
<td valign="top" align="right">$24.95</td>
<td valign="top" nowrap="nowrap" align="center"> 
<a href="http://safari.oreilly.com/0596004478">Read it on Safari</a>
</td>
<td valign="top" nowrap="nowrap">
<a href="http://examples.oreilly.com/googlehks">Get examples</a>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

所以无论如何html已经改变了.您可以通过查看浏览器上的源代码来查看它.

当我运行脚本时,我收到此错误:

在/usr/lib/perl5/site_perl/5.8.8/HTML/TreeBuilder.pm第93行的子例程条目中使用未初始化的值.无法在./SpiderTutorial_19_09.pl第67行的未定义值上调用方法"as_HTML".有0本Perl书籍和0本Java书籍.Java比Perl多0个.

这是我正在尝试运行的代码.

#!/usr/bin/perl -w
use strict;
use LWP::Simple;
use HTML::TreeBuilder;

my $url = 'http://oreilly.com/store/complete.html';
my $page = get( $url ) or die $!;
my $p = HTML::TreeBuilder->new_from_content( $page );
my($book);
my($edition);

my @links = $p->look_down(
        _tag => …
Run Code Online (Sandbox Code Playgroud)

perl web-crawler

1
推荐指数
1
解决办法
495
查看次数

标签 统计

perl ×1

web-crawler ×1