python和nodejs哪个写爬虫好_PythonNodejs 哪个比较适合写爬虫

长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

1、如果是定向爬取几个页面,做一些简单的页面解析,爬取效率不是核心要求,那么用什么语言差异不大。

当然要是页面结构复杂,正则表达式写得巨复杂,尤其是用过那些支持xpath的类库/爬虫库后,就会发现此种方式虽然入门门槛低,但扩展性、可维护性等都奇差。因此此种情况下还是推荐采用一些现成的爬虫库,诸如xpath、多线程支持还是必须考虑的因素。

此时候,页面内容是有js/ajax动态生成的,用普通的请求页面-解析的方法就不管用了,需要借助一个类似firefox、chrome浏览器的js引擎来对页面的js代码做动态解析。

3、如果爬虫是涉及大规模网站爬取,效率、扩展性、可维护性等是必须考虑的因素时候

大规模爬虫爬取涉及诸多问题:多线程并发、I/O机制、分布式爬取、消息通讯、判重机制、任务调度等等,此时候语言和所用框架的选取就具有极大意义了。

NodeJS:对一些垂直网站爬取倒可以,但由于分布式爬取、消息通讯等支持较弱,根据自己情况判断。

Python:强烈建议,对以上问题都有较好支持。尤其是Scrapy框架值得作为第一选择。优点诸多:支持xpath;基于twisted,性能不错;有较好的调试工具;

此种情况下,如果还需要做js动态内容的解析,casperjs就不适合了,只有基于诸如chrome V8引擎之类自己做js引擎。

至于C、C++虽然性能不错,但不推荐,尤其是考虑到成本等诸多因素;对于大部分公司还是建议基于一些开源的框架来做,不要自己发明轮子,做一个简单的爬虫容易,但要做一个完备的爬虫挺难的。

像我搭建的微信公众号内容聚合的网站 就是基于Scrapy做的,当然还涉及消息队列等。可以参考下图:

1【专注:Python+人工智能Java大数据HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】

现代语言(尤其是像PHP、python、Node.js这类开源式语言种类)在网络协议的支持方面都十分完善。

当然,像微软的C#也不错,但该语言写起来,却感觉特别的繁琐,不像你说的这两种语言这么简单干练。

我用C#和PHP写过采集器,唯一的原因是C#可以更完善直接地运行地windows系统上,这是最原始的初衷,而我那个时候最擅长的却是PHP和python,这要看你侧重于哪一个方面。

如果你对这两门语言都比较精通,你选择哪一个都可以,而这两种语言都是在linux系统中有更加优异的表现。

Node.js算是一门新兴语言,但它因为源自于javascript,所以它的干练是出了名的,连python都不及它,如果你想少打点字,那选node.js

嗯,不管我说多少,总之一句话:这两种语言因为没有最为根本的系统要求区别,所以看你对哪一个更为精通,就选择哪一种。

如果你都是初学,建议从Node.js开始,因为javascript的各种回调相当拥有代表性,玩转了它,呵呵,其它语言的那些逻辑都不是事儿。。。。

补充一下,因为python出现的时间要比Node.js早,所以很多模块的支持要更全面和完善一些。

我最近在搞嵌入式的软体开发,python还是最爱,因为它的领域更广一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值