我已经在Perl构建Web抓取工具多年了,并且考虑到垃圾邮件代表的问题,以及如果例如Perl的{{3},那么抓取网页对于那些人来说会更容易可以处理它的JavaScript,我很惊讶没有人为它构建一个JS引擎。
我在这里缺少什么?
提前致谢。问候。
PS:我不是垃圾邮件发送者。好奇。答案 0 :(得分:8)
你的意思是JavaScript::SpiderMonkey,是Mozilla使用的JavaScript引擎的Perl接口吗?
答案 1 :(得分:6)
答案 2 :(得分:6)
TMTOWTDI。 另一个选项是WWW::Scripter,带有Javascript或AJAX插件。
答案 3 :(得分:4)
还有Win32::IE::Mechanize,Mozilla::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)'