首页 >>  正文

Python,Node.js 哪个比较适合写爬虫

来源:www.zuowenzhai.com    作者:编辑   日期:2024-06-02
Python,Node.js 哪个比较适合写爬虫

主要看你定义的“爬虫”干什么用。
1、如果是定向爬取几个页面,做一些简单的页面解析,爬取效率不是核心要求,那么用什么语言差异不大。
当然要是页面结构复杂,正则表达式写得巨复杂,尤其是用过那些支持xpath的类库/爬虫库后,就会发现此种方式虽然入门门槛低,但扩展性、可维护性等都奇差。因此此种情况下还是推荐采用一些现成的爬虫库,诸如xpath、多线程支持还是必须考虑的因素。
2、如果是定向爬取,且主要目标是解析js动态生成的内容
此时候,页面内容是有js/ajax动态生成的,用普通的请求页面->解析的方法就不管用了,需要借助一个类似firefox、chrome浏览器的js引擎来对页面的js代码做动态解析。
此种情况下,推荐考虑casperJS+phantomjs或slimerJS+phantomjs ,当然诸如selenium之类的也可以考虑。
3、如果爬虫是涉及大规模网站爬取,效率、扩展性、可维护性等是必须考虑的因素时候
大规模爬虫爬取涉及诸多问题:多线程并发、I/O机制、分布式爬取、消息通讯、判重机制、任务调度等等,此时候语言和所用框架的选取就具有极大意义了。
PHP对多线程、异步支持较差,不建议采用。
NodeJS:对一些垂直网站爬取倒可以,但由于分布式爬取、消息通讯等支持较弱,根据自己情况判断。
Python:强烈建议,对以上问题都有较好支持。尤其是Scrapy框架值得作为第一选择。优点诸多:支持xpath;基于twisted,性能不错;有较好的调试工具;
此种情况下,如果还需要做js动态内容的解析,casperjs就不适合了,只有基于诸如chrome V8引擎之类自己做js引擎。

nodeJS当然也可以写爬虫,但我更推荐用Python写爬虫,最主要的原因是库多,requests,xml,beautifulsoup,selenium,scrapy等都是爬虫利器,只要几行代码就可以实现大部分功能。
  实际上爬虫写到后面关注的是效率和防爬攻防的问题,如随机headers处理、IP代理池,验证码识别等,需要在这些细节上去考量。

简单的定向爬取:
Python + urlib2 + RegExp + bs4
或者
Node.js + co,任一一款dom框架或者html parser + Request + RegExp 撸起来也是很顺手。
对我来说上面两个选择差不多是等价的,但主要我JS比较熟,现在选择Node平台会多一些。

上规模的整站爬取:
Python + Scrapy
如果说上面两个方案里DIY 的 spider是小米加步枪,那Scrapy简直就是重工加农炮,好用到不行,自定义爬取规则,http错误处理,XPath,RPC,Pipeline机制等等等。而且,由于Scrapy是基于Twisted实现的,所以同时兼顾有非常好的效率,相对来说唯一的缺点就是安装比较麻烦,依赖也比较多,我还算是比较新的osx,一样没办法直接pip install scrapy

另外如果在spider中引入xpath的话,再在chrome上安装xpath的插件,那么解析路径一目了然,开发效率奇高。

NodeJS:对一些垂直网站爬取倒可以,但由于分布式爬取、消息通讯等支持较弱,根据自己情况判断。 Python:强烈建议,对以上问题都有较好支持。尤其是Scrapy框架值得作为第一选择。优点诸多:支持xpath;基于twisted,性能不错;有较好的调试工具; 此种情况下,如果还需要做js动态内容的解析,casperjs就不适合了,只有基于诸如chrome V8引擎之类自己做js引擎。

最好的爬虫语言是前嗅的ForeSpider爬虫脚本语言。是一门专门的爬虫脚本语言,而不是爬虫框架,可以用简单几行代码,实现非常强大的爬虫功能。
ForeSpider是可视化的通用性采集软件,同时内置了强大的爬虫脚本语言。如果有通过可视化采集不到的内容,都可以通过简单几行代码,实现强大的脚本采集。软件同时支持正则表达式操作,可以通过可视化、正则、脚本任意方式,实现对数据的清洗、规范。

对于一些高难度的网站,反爬虫措施比较多,可以使用ForeSpider内部自带的爬虫脚本语言系统,简单几行代码就可以采集到高难度的网站。比如国家自然基金会网站、全国企业信息公示系统等,最高难度的网站完全没有问题。
在通用性爬虫中,ForeSpider爬虫的采集速度和采集能力是最强的,支持登录、Cookie、Post、https、验证码、JS、Ajax、关键词搜索等等技术的采集,采集效率在普通台式机上,可以达到500万条数据/每天。这样的采集速度是一般的通用性爬虫的8到10倍。
对于大量的网站采集需求而言,ForeSpider爬虫可以在规则模板固定之后,开启定时采集。支持数据多次清洗。
对于关键词搜索的需求而言,ForeSpider爬虫支持关键词搜索和数据挖掘功能,自带关键词库和数据挖掘字典,可以有效采集关键词相关的内容。
可以去下载免费版,免费版不限制采集功能。有详细的操作手册可以学习。

看你更熟悉哪一个咯



(编辑:陆夏底)
联系方式:
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图
@ 作文摘要网