node 利用http和cheerio编写简易爬虫

首先cnpm init创建一个package.json

引入cheerio模块 cnpm install --save cheerio

然后开始编写代码

 

let cheerio = require('cheerio'),
    http = require('http'),
    fs = require('fs'),
    url = 'http://so.8264.com/cse/search?q=2&s=9963133823733045431&p=',
    page = 1



http.get(url + page, function (res) {
    let html = ''; //用来存储请求网页的整个html内容
    res.setEncoding('utf-8'); //防止中文乱码
    //监听data事件,每次取一块数据
    res.on('data', function (chunk) {
        html += chunk;
    });
    //监听end事件,如果整个网页内容的html都获取完毕,就执行回调函数
    res.on('end', function () {
        // console.log(html)
        var $ = cheerio.load(html, {
                decodeEntities: false
            }),
            Arr = []
        //采用cheerio模块解析    html
        $('.result').each(function (index, element) {
            const _t = $(this)
            Arr.push({
                'title': _t.find('.c-title').text().trim(),
                'src': _t.find('a').attr('href').trim(),
                'img': _t.find('img').length > 0 ? _t.find('img').attr('src').trim() : '',
                'describe': _t.find('.c-abstract').text().trim()
            })
        })

        let writerStream = fs.createWriteStream('output.txt');
        writerStream.write(JSON.stringify(Arr), 'UTF8');
        writerStream.end();

    });
}).on('error', function (err) {
    console.log(err);
});

 

转载于:https://www.cnblogs.com/lmyt/p/9928492.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值