Node.JS 是可以写爬虫的. Node.JS 出现后, 爬虫便不再是后台语言如 PHP,Python 的专利了, 尽管在处理大量数据时的表现仍然不如后台语言, 但是 Node.JS 异步编程的特性可以让我们在最少的 CPU 开销下轻松完成高并发的爬取.
另外由于现在许多网站都有了反爬虫手段, 对付这些手段最合适的当然是可以在浏览器中直接运行的 JS, 这也使得基于 Node.JS 的爬虫技术越来越受重视.
node 做爬虫的优势:
第一个就是他的驱动语言是 JavaScript.JavaScript 在 Node.JS 诞生之前是运行在浏览器上的脚本语言, 其优势就是对网页上的 dom 元素进行操作, 在网页操作上这是别的语言无法比拟的.
第二就是 Node.JS 是单线程异步的, 一个页面未返回不会阻塞其它页面加载.
node 做爬虫的劣势:
首先是异步并发上. 处理的好很方便, 处理的不好就会很麻烦. 例如要爬取 10 个页面, 用 node 不做异步处理话, 那返回的结果可不一定是按 1,2,3,4...... 这个顺序, 很可能是随机. 解决的办法就是增加一个页面的序列戳, 让爬取的数据生成 CSV 文件, 然后重新排序.
第二个是数据处理上的劣势, 这点是不如 python 的, 如果只是单纯的爬数据, 用 node 当然很好, 但是如果用爬来的数据继续做统计分析, 做个回归分析聚类啥的话, 那就不能用 node 一步到底了.
来源: http://www.css88.com/qa/node-js/10844.html