码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2018-11-08 13:44:14      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:page   his   result   tput   function   htm   out   tle   desc   

首先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);
});

 

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

标签:page   his   result   tput   function   htm   out   tle   desc   

原文地址:https://www.cnblogs.com/lmyt/p/9928492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!