如何使用nodejs做爬虫程序

 我来答
里恨骄7055
2016-12-09 · TA获得超过2687个赞
知道小有建树答主
回答量:751
采纳率:5%
帮助的人:72.5万
展开全部
作者:Mike Chen
链接:https://www.zhihu.com/question/31679802/answer/128390326
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

首先楼主要使用nodejs作为语言或者平台来开发爬虫是没有任何问题的,反而nodejs的event io能够让你感觉到网络编程可以如此酣畅淋漓,一如http://nodejs.org 官网给出的http server 的例子,几行代码就能实现web服务,没有apache 没有tomcat也没有iis,只要设置一个回调,监听一个端口,你就可以使用浏览器访问了。
其次,爬虫是最明显的IO密集型应用场景,显然和擅长处理IO的nodejs是绝配,但是把它用好是需要一些功底的。如果你想要从头开发,不借助第三方框架,那么你需要对nodejs中的event emitter 及 http 模块有深入的了解,加上你的HTTP协议的知识,再到node平台中找到相应的实现方案,从而实现你要的功能。举个例子,使用http模块发送一个GET请求到百度,你需要弄清楚对req,也就是http.get的返回值,监听什么样的事件,http的头部信息和正文信息分别应该在什么阶段获取。在python中方法很直白,简简单单的用urllib来open一个链接,接着read就算完事儿,写到这里突然感觉可以理解之前那位仁兄认为的"不适合",也许是觉得node 不如python的直白,又或许只是对node的理解不够到位,不好拿捏?
最后,如果楼主想要把node作为平台来开发爬虫,我建议直接从开源框架入手,立刻做出一些可用的程序来给自己一些正反馈,然后再慢慢学习体会。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式