nodejs爬虫

本文主要通过 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());
});

这时候就获得这章小说的内容了。

你可能感兴趣的:(js,node)