有没有一种方法可以在Perl中执行JavaScript?

6

我已经在Perl中构建Web爬虫工具工作了几年,考虑到垃圾邮件的问题以及如果Perl的LWP :: UserAgent可以处理其JavaScript,那么对于这些人来说,爬取Web页面将变得更加容易,我惊讶于为什么还没有人为其构建JS引擎。

我在这里错过了什么吗?

提前感谢。问候。

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

5个回答

8
你是指类似于JavaScript::SpiderMonkey这样的东西吗?它是一个Perl接口,用于连接Mozilla使用的JavaScript引擎。

6

6

TMTOWTDI 是一种IT技术的编程哲学,它认为在解决问题时存在多种方法。

另一种选择是使用WWW::Scripter,它带有Javascript或AJAX插件。


4

还有Win32::IE::MechanizeMozilla::Mechanize。但是之前提到的WWW::Selenium是最DWIW且最受支持的,如果您可以访问浏览器并运行Selenium服务器。Selenium是一个Java小动物,为您运行浏览器交互。它有IDE适用于多个浏览器,并可以为您编写代码-通过记录浏览器操作-使用多种语言,包括Perl或手写。它是测试中心化的,擅长这方面,但没有理由不将其用于一般自动化/抓取。


4
您可以尝试安装SpiderMonkey,并在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)'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接