由于一些原因,我们想要获取某个网站的数据。我们可以通过nodejs爬虫拿到我们希望的数据。要完成一个爬虫,主要的步骤分为:
抓取
爬虫,最重要的步骤就是如何把想要的页面抓取回来。并且能够兼顾时间效率,能够并发的爬取多个页面。想要获取目标内容,需要我们分析页面结构。
1、使用nodejs的request模块,获取目标页面的html代码。
2、使用cheerio模块对html模块做处理,拿到需要的数据。
存储
获取到有价值的数据后,为了方便我们的使用可以把数据保存下。可以转换成json文件或者直接存入数据库。
具体实现
1、初始化一个项目:
$ npm init
2、安装依赖模块:
$ npm install express request cheerio --save
express用来搭建node服务;
request类似于ajax的方式获取一个url里面的html代码;
cheerio类似于jquery那样对所获取的html代码进行处理。
3、根目录创建一个spider.js
var express = require('express'),app = express(),request = require('request'),cheerio = require('cheerio'), fs = require('fs');var fetchData = [];
function fetchBrand(){ request('http://waimai.baidu.com/waimai/shop/1434741117', function(err, res, body) {if (err || res.statusCode != 200) {console.log(err);console.log('爬取失败'); return false;} var $ = cheerio.load(body, { decodeEntities: false });//解决了乱码的问题var curBrands = $('.list-wrap');for(var i = 0;i
}fetchBrand();
4、运行spider.js文件
$ node spider.js
控制台会输出抓取成功。这个时候你会发现文件夹里多了一个名为baiduData.json的json文件。