我一直试图解析和运行JavaScript网页使用python(2.4)。不幸的是,我不能使用qt,webkit,所以大多数基于python的无头浏览器都被排除了。然而,我最近在perl中发现了WWW :: Scripter(使用perl 5.8.8),这似乎也是javascript的脚本引擎。我还安装了运行它所需的JavaScript插件。JavaScript引擎解析并运行Javascript网页(perl/python)
use WWW::Scripter;
$w = new WWW::Scripter;
$w->use_plugin('JavaScript'); # packaged separately
$w->get('some javascript website');
print $w->content;
那么它打印很多很多的错误,并最终终止和输出似乎没有任何地方接近预期。我尝试了3-4个网站,但结果相同。按照预期的输出,我的意思是可以从谷歌Chrome浏览器的inspect元素中看到的源代码。 任何想法我正在做错perl脚本?其次,任何快速的替代方式获得一个JavaScript引擎运行来解析网站在python2.4或perl(甚至红宝石,约束不能使用qt) 有希望我可以提出我的问题,而不会混淆很多。
编辑:错误 第几行:
Day too big - 52263 > 24855
Sec too small - 52263 < 74752
Sec too big - 52263 > 11647
Day too big - 52263 > 24855
Sec too small - 52263 < 74752
Sec too big - 52263 > 11647
<></> at /usr/lib/perl5/site_perl/5.8.8/HTML/DOM/Element.pm line 320.
at /usr/lib/perl5/site_perl/5.8.8/HTML/DOM/Element.pm line 320.
HTML::DOM::Element::getAttribute('HTML::DOM::Element::Input=HASH(0xcc309f0)', 'checked') called at /usr/lib/perl5/site_perl/5.8.8/HTML/DOM/Element.pm line 379
HTML::DOM::Element::_attr('HTML::DOM::Element::Input=HASH(0xcc309f0)', 'checked') called at /usr/lib/perl5/site_perl/5.8.8/HTML/DOM/Element/Form.pm line 965
HTML::DOM::Element::Input::defaultChecked('HTML::DOM::Element::Input=HASH(0xcc309f0)') called at /usr/lib/perl5/site_perl/5.8.8/HTML/DOM/Element/Form.pm line 975
HTML::DOM::Element::Input::checked('HTML::DOM::Element::Input=HASH(0xcc309f0)') called at /usr/lib/perl5/site_perl/5.8.8/JE.pm line 1719
JE::__ANON__('JE::Object::Proxy=REF(0xcb53f44)', undef) called at /usr/lib/perl5/site_perl/5.8.8/JE/Object.pm line 385
JE::Object::prop('JE::Object::Proxy=REF(0xcb53f44)', 'checked') called at /usr/lib/perl5/site_perl/5.8.8/JE/LValue.pm line 91
JE::LValue::get('JE::LValue=ARRAY(0xcc4eac8)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 1197
JE::Code::Expression::eval('JE::Code::Expression=ARRAY(0xc5fa87c)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 1377
JE::Code::Expression::_eval_term('JE::Code::Expression=ARRAY(0xc5fa87c)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 1150
JE::Code::Expression::eval('JE::Code::Expression=ARRAY(0xc5fa78c)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 349
JE::Code::Statement::eval('JE::Code::Statement=ARRAY(0xc5e50e8)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 186
eval {...} called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 157
JE::Code::execute('JE::Code=HASH(0xcb4a5c0)', 'WWW::Scripter::Plugin::JavaScript::JE=REF(0xa7c76e8)', 'JE::Scope=ARRAY(0xcb4fc7c)', 2) called at /usr/lib/perl5/site_perl/5.8.8/JE/Object/Function.pm line 486
JE::Object::Function::apply('JE::Object::Function=REF(0xcb4aaac)', 'WWW::Scripter::Plugin::JavaScript::JE=REF(0xa7c76e8)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Object/Function.pm line 351
JE::Object::Function::call('JE::Object::Function=REF(0xcb4aaac)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 1287
JE::Code::Expression::eval('JE::Code::Expression=ARRAY(0xc607808)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 1377
JE::Code::Expression::_eval_term('JE::Code::Expression=ARRAY(0xc607808)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 1182
JE::Code::Expression::eval('JE::Code::Expression=ARRAY(0xc5a0798)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 1377
JE::Code::Expression::_eval_term('JE::Code::Expression=ARRAY(0xc5a0798)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 1150
JE::Code::Expression::eval('JE::Code::Expression=ARRAY(0xc5a0600)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 349
JE::Code::Statement::eval('JE::Code::Statement=ARRAY(0xc3abbc0)') called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 186
eval {...} called at /usr/lib/perl5/site_perl/5.8.8/JE/Code.pm line 157
由于
你得到什么错误,Perl和PhantomJs之间相互作用的
代码示例?为什么在世界上你使用了十多年前的Perl 5.8? – friedo 2013-02-27 17:35:34
感谢您的回复。我在一台服务器机器上工作,因此升级需要很多请求:(尽管我已经发起了请求,但是在那之前我需要满足于我的所有需求。当我在路透社上运行它时,我正在粘贴前几行的错误网站。 – 2013-02-27 17:44:27