一个用node.js写的爬取豆瓣电影top250的小demo,只爬取了电影名称、电影评分和电影图片,按页分文件夹存储到了本地
一、前言
Domo地址:https://github.com/GitWuJun/NodeDouBanSpider
最近在玩儿node.js,为了实践一下,写了个爬取豆瓣电影top250的小demo。之前用python写过几个简单的爬虫,python爬虫网上教程非常多,而且还有许多优秀的模块和成熟的框架加持,所以还是比较简单。而用node写爬虫相对来说就比较少了,node天生异步io效率非常的高其实还是比较适合写爬虫的,但对于node不熟的新手而言node因为天生优势的效率往往会带来很多的坑。原来只接触过java,对python了解一点,第一次接触node.js这种天生异步io的语言,它的效率的确非常的高,为了防止请求太过频繁或者请求速度过快导致被封ip等问题(目前爬豆瓣的数据还没这个问题),demo的app2.js中还使用了一个async模块(下面会有介绍)来控制并发数量
二、说明
运行环境:node v8.11.3
使用的模块:url、http/https、cheerios、fs、async
demo主要分为app.js和app2.js,两个文件都可以爬取豆瓣电影top250的所有数据,主要区别在于app2.js中使用了async模块来控制爬取时候的并发数,并通过设置延时来控制爬取速度。
最终会将爬取得到的数据分文件夹保存到本地,包括电影图片和包含电影信息的json格式txt文件。
三、快速开始
Domo地址:https://github.com/GitWuJun/NodeDouBanSpider
git clone git@github.com:GitWuJun/NodeDouBanSpider.git
cd ./NodeDouBanSpider
npm install
node app.js 或者 node app2.js