爬虫是不是用 Node.js 更好?

 我来答
回忆6165199696
2017-12-28 · TA获得超过319个赞
知道答主
回答量:272
采纳率:98%
帮助的人:59.4万
展开全部
‍‍

Node.js当然适合做爬虫,当然Python同样也适合。你所遭遇的问题充其量只是个程序逻辑问题,而不是语言问题。Nodejs做爬虫最大的优势大概在于更容易接入诸如下类的phantomjs/casperjs来搞一些更自动化的针对动态加载内容的爬取(当然Python也行,只不过没那么原生)。单纯只是爬个数据,解析一下DOM,无论Php还是Java还是C++还是C#甚至是VBS都一样能玩得顺溜,代码量也不见得就会特别大。目前,Python做爬虫更多一些,一方面可能是因为诸如Scrapy这样的总体分布框架更加完善而久经考验,而另一方面,爬下来的数据若不是自己做玩具,更多的情况下还需要做清洗、分析等相关工作,而不是闭眼存文件/数据库。这些数据处理相关环节中,Python的生态要比Node好太多。从头写一个原始的爬虫,Node.js 确实很方便,不过其它语言驱动浏览器也没复杂到哪里。写一个能工程实用的,比的其实是现有工具的成熟度,目前 Crawler 虽然已经很像 Scrapy 了,上手很快,但还是需要自己找个 cheerio 之类的来分析 dom,Scrapy 则是全集成的,当然 Crawler 也可随便换熟悉的 dom 处理框架也算一个好处啦。而搞一个24x7运行的分布式爬虫系统,Scrapy 成熟度强的就不是一星半点儿logging/stats/telnet/email什么的都标配了,节点任务分配、调度都现成的,相信假以时日,总会有人拿 Node.js 搞出一套同样强大的。简单的爬虫用啥都能写,python和js区别很小,选个自己喜欢的足够熟练的即可。复杂的爬虫语言不是关键问题,架构做大了之后也不是一种语言能很好解决的。

‍‍
尹朶月35227ea4
2017-12-28 · TA获得超过480个赞
知道答主
回答量:282
采纳率:96%
帮助的人:66.9万
展开全部
‍‍

我就是拿 Node.js 写爬虫的,python 确实爬虫库比较多,但是 Node.js 也不差呀,而且 js 作为浏览器上运行的首选语言,怎么看都比 python 更适合做爬虫。另外爬虫爬漏数据是很正常的事,你需要自己写代码来避免这种情况(自动重试之类的),跟 Node.js 并没有什么关系。简单的爬虫用啥都能写,python和js区别很小,复杂的爬虫语言不是关键问题,架构做大了之后也不是一种语言能很好解决的。需要解决很多耦合比较强的需求,比如ajax爬取,js页面动态渲染,验证码识别,动态代理,流量控制,连接数控制和动态分配。如果有搜索和存储的要求,需求就更复杂了。所以专注需求可能比选择语言更有意义。

‍‍
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大马SByziizbd
2017-12-28 · TA获得超过349个赞
知道答主
回答量:307
采纳率:95%
帮助的人:55.7万
展开全部
‍‍

问题不是用什么语言好,而是先把各种技术了解清楚。爬不到可能会有很多情况,是不是网络质量问题,是不是请求被服务器拒绝,是不是内存(或者其他)不足。爬虫这种东西太简单了,用什么语言都一样,同步异步也没有特别大的差别,如果要做到搜索引擎那种级别的收录,靠的是架构,也不靠语言。你能用nodejs写爬虫,觉得nodejs比python好,你去写就成了。这跟取代python有什么关系,别老想着一统天下。世面见多了就知道世界复杂的狠,别老想取代这个取代那个,老老实实搬砖,踏踏实实做人。

‍‍
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式