node.js、casper.js和phantom.js之间的区别是什么?

12

我已经阅读过这三种工具都是用于网络爬虫,但它们有什么区别?在何种环境下,一种比另一种更好?

1个回答

20

Nodejs是一种基于Chrome的V8引擎的脚本引擎。Nodejs通常用作Web服务器,但它实际上是可以运行任何类型的脚本的。通过向其他服务器发出请求并分析输出,可以将Node用于Web抓取。

Phantomjs是一个无界面浏览器,意味着它像浏览器一样工作,但没有用户界面。独立使用时,它构成了Web测试框架的一部分,但与Casperjs一起使用更好。

Casperjs是建立在Phantomjs之上的实用工具,可帮助您构建自动化测试。

自动化测试可以被视为Web抓取器,但这并不是其真正目的。Web测试通常对正在抓取的页面的更改非常敏感,并且在DOM操作方面不必快速(因为您倾向于一次处理一页)。

我认为对于您想要的内容,Nodejs可能是最好的选择。


谢谢你的回复。正如你所说,我的意图是进行网络爬虫。在爬取方面,Scrapy和Node.js哪个更好? - user1790836
1
Nodejs会是我的选择。你可以使用http请求来爬取别人的页面,并且你有JavaScript来操作DOM。借助jQuery和Underscore库(以及其他库),你可以拥有一个很好的爬虫设置。你也可以通过测试自动化来实现,但如果你想要爬取多个目标,你需要进行一些调整。请检查你的主机是否能够运行Nodejs。 - Dr Rob Lang
如果在爬取内容时需要JavaScript才能将其加载到页面上,那么仅发送HTTP请求并解析响应是不够的。如果选择Node,可以使用jsdom来模拟DOM。或者可以使用PhantomJS或CasperJS(CasperJS是Phantom +更多功能)来模仿Web浏览器。或者使用Selenium WebDriver来驱动实际浏览器。 - Max Heiber

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