zoukankan      html  css  js  c++  java
  • 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);
    });
  • 相关阅读:
    Django之admin
    CSS弹性盒子
    SQL SERVER按多字段查找重复的数据并删除只保留一条
    计算机名称改名之后,tfs连接问题
    Docker镜像仓库Harbor部署
    搭建docker本地仓库
    部署docker swarm集群
    Dockerfile
    centos 7 安装docker 常用指令
    python软件安装-Windows
  • 原文地址:https://www.cnblogs.com/lmyt/p/9928492.html
Copyright © 2011-2022 走看看