如何在Perl中运行网页的Javascript?

时间:2012-04-11 08:04:53

标签: javascript perl web-crawler

  

可能重复:
  How can I use Perl to grab text from a web page that is dynamically generated with JavaScript?

我对学习Perl很感兴趣,刚开始在Perl中编写Web爬虫。在我抓取的页面上,有一个Javascript用于对页面进行投票。它显示当前页面的投票,只有当我点击投票明星时。因此,在抓取过程中,我需要运行Javascript并了解页面的当前投票。

您有任何建议或示例吗?

谢谢..

2 个答案:

答案 0 :(得分:3)

您需要将模块WWW::ScripterWWW::Scripter::Plugin::JavaScript一起使用。

<强>梗概:

#!/usr/bin/perl

use strict;
use warnings;
use WWW::Scripter;

$w = new WWW::Scripter;
$w->use_plugin('JavaScript');  # packaged separately
$w->get('http://some.site.com/that/relies/on/javascript');
$w->eval(' alert("Hello from JavaScript") ');
$w->document->getElementsByTagName('div')->[0]->....
$w->content; # returns the HTML content, possibly modified by scripts

答案 1 :(得分:2)

使用perl驱动实际的浏览器是一种选择(例如WWW::Mechanize::FirefoxWWW::Selenium等)。要在perl中实际运行javascript,请使用WWW::Scripter尝试WWW::Scripter::Plugin::JavaScript