本文主要通过 superagent 和 cheerio 实现nodejs爬虫。
使用superagent获取网页信息,再通过cheerio解析网页内容。
以获取笔趣阁小说为例:
首先安装安装superagent和cheerio
npm i superagent --save
npm i cheerio --save
先简单地获取整页网站的内容
var cheerio = require('cheerio');
var superagent = require('superagent');
superagent.get('http://www.biquge.com.tw/10_10459/6123635.html').end(function (err,res) {
if (err) {
console.log(err);
return err;
}
console.log(res.text)
});
res.text 就是获取的网页内容。这时候查看输出内容会发现中文内容是乱码的,superagent 只支持utf-8编码,我们需要将编码格式设置为 gbk,我们可以选择 superagent-charset 这个库实现这个功能。
npm i superagent-charset --save
通过 superagent-charset 设置为gbk格式。
var charset = require('superagent-charset');
var superagent = require('superagent');
var cheerio = require('cheerio');
superagent = charset(superagent)
superagent.get('http://www.biquge.com.tw/10_10459/6123635.html')
.charset('gbk')
.end(function (err,res) {
if (err) {
console.log(err);
return err;
}
console.log(res.text)
});
这时候的输出就是中文了。之后我们就只需要通过cheerio解析内容,cheerio的使用十分类似jQuery
var charset = require('superagent-charset');
var superagent = require('superagent');
var cheerio = require('cheerio');
superagent = charset(superagent)
superagent.get('http://www.biquge.com.tw/10_10459/6123635.html')
.charset('gbk')
.end(function (err,res) {
if (err) {
console.log(err);
return err;
}
var $ = cheerio.load(res.text);
var content= $('#content')['0'].children;
$element = $(content);
console.log($element.text());
});
这时候就获得这章小说的内容了。