1

我在 64 位机器上使用 Windows Perl 5.16.3。

当我使用带有以下 URL 的机械化时

http://www.utsavfashion.in/indowestern

一切正常。

但是,当我尝试使用分页选项时,即

将最后一个字符串更改为 indowestern#pg=2

我无法获得第二页内容。我仍然从第一页获取内容。

请看下面的代码片段:

my $url = "http://www.utsavfashion.in/indowestern#pg=2";

$m = WWW::Mechanize->new();
$m->get($url);
print "$url\n";

my $c = $m->content;

print "$c\n";

提前感谢您的建议!

4

1 回答 1

1

Web 浏览器甚至不发送#pg=2到 Web 服务器。我不知道 WWW::Mechanize 是否这样做,但它不应该。因此,您获得相同的页面也就不足为奇了

http://www.utsavfashion.in/indowestern

并且对于

http://www.utsavfashion.in/indowestern#pg=2

区别不在于获取的内容,而在于渲染的内容。

当您使用 Web 浏览器呈现它时,页面中的 JavaScript 会检查锚点并相应地更新内容。

当您使用 yourprint $content渲染它时,它看起来完全不同。您不会得到格式良好的文本或 JavaScript 的效果。

有用于处理下载内容中的 JavaScript 的选项。但是,如果您正在进行数据挖掘,那么复制 JavaScript 所做的工作可能会更有效和更可靠,因为如果在下载的文档中找不到数据,它可能只是执行另一个 Web 请求来获取数据。

于 2013-05-08T06:04:46.433 回答