【发布时间】:2011-01-22 11:33:23
【问题描述】:
我已经在 Perl 构建 Web 抓取工具方面工作了几年,考虑到垃圾邮件所代表的问题,以及如果 Perl 的 LWP::UserAgent 可以处理它那杯 JavaScript,我很惊讶还没有人为它构建 JS 引擎。
我在这里错过了什么?
提前致谢。问候。
PS:我不是垃圾邮件发送者。只是好奇。
【问题讨论】:
标签: javascript perl
我已经在 Perl 构建 Web 抓取工具方面工作了几年,考虑到垃圾邮件所代表的问题,以及如果 Perl 的 LWP::UserAgent 可以处理它那杯 JavaScript,我很惊讶还没有人为它构建 JS 引擎。
我在这里错过了什么?
提前致谢。问候。
PS:我不是垃圾邮件发送者。只是好奇。
【问题讨论】:
标签: javascript perl
您的意思是像JavaScript::SpiderMonkey 这样的东西吗,Mozilla 使用的 JavaScript 引擎的 Perl 接口?
【讨论】:
【讨论】:
TMTOWTDI。 另一个选项是WWW::Scripter,带有 Javascript 或 AJAX 插件。
【讨论】:
还有Win32::IE::Mechanize、Mozilla::Mechanize。但是前面提到的WWW::Selenium 是最 DWIW 并且得到良好支持的如果您可以访问浏览器并且可以运行 Selenium 服务器。 Selenium 是一个为您运行浏览器交互的 Java 小程序。它具有适用于多个浏览器的IDEs,并且可以通过记录浏览器操作为您编写代码,包括 Perl 在内的several languages,或者您可以手写。这是test-centric,它擅长于此,但没有理由不将其用于一般自动化/抓取。
【讨论】:
您可以尝试安装 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)'
【讨论】: