可能重复:
How can I use Perl to grab text from a web page that is dynamically generated with JavaScript?
我对学习Perl很感兴趣,刚开始在Perl中编写Web爬虫。在我抓取的页面上,有一个Javascript用于对页面进行投票。它显示当前页面的投票,只有当我点击投票明星时。因此,在抓取过程中,我需要运行Javascript并了解页面的当前投票。
您有任何建议或示例吗?
谢谢..
答案 0 :(得分:3)
您需要将模块WWW::Scripter与WWW::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::Firefox,WWW::Selenium等)。要在perl中实际运行javascript,请使用WWW::Scripter尝试WWW::Scripter::Plugin::JavaScript。