有没有办法在Perl中执行JavaScript?

时间:2011-01-22 11:33:23

标签: javascript perl

我已经在Perl构建Web抓取工具多年了,并且考虑到垃圾邮件代表的问题,以及如果例如Perl的{{3},那么抓取网页对于那些人来说会更容易可以处理它的JavaScript,我很惊讶没有人为它构建一个JS引擎。

我在这里缺少什么?

提前致谢。问候。

PS:我不是垃圾邮件发送者。好奇。

5 个答案:

答案 0 :(得分:8)

你的意思是JavaScript::SpiderMonkey,是Mozilla使用的JavaScript引擎的Perl接口吗?

答案 1 :(得分:6)

答案 2 :(得分:6)

TMTOWTDI。 另一个选项是WWW::Scripter,带有Javascript或AJAX插件。

答案 3 :(得分:4)

还有Win32::IE::MechanizeMozilla::Mechanize。但前面提到的WWW::Selenium是DWIW和支持得最好的,如果你可以访问浏览器并且可以运行Selenium服务器。 Selenium是一个Java生物,可以为您运行浏览器交互。对于多个浏览器,它有IDE个,可以为您编写代码 - 通过记录浏览器操作 - 在several languages中包含Perl,或者您可以手写它。它是test-centric,它擅长,但没有理由不将它用于一般自动化/抓取。

答案 4 :(得分:4)

你可以尝试安装SpiderMonkey和-in你的perl程序 - 在反引号中执行javascript,并捕获结果,就像从任何其他unix命令行工具一样。 Spidermonkey有一个命令行选项,类似于perl的-e命令行选项。 spidermonkey二进制文件称为“js”,因此:

  

/ path / to / spidermonkey / bin / js -e“print(10);”

     

> 10

我认为你也可以安装v8-shell作为替代引擎,但是你必须先安装'scons',这只能在unix上使用。

  

./ v8-shell -e'print(“10 * 10 =”+ 10 * 10)'