zoukankan      html  css  js  c++  java
  • NodeJs+Request+Cheerio 采集数据

    目的:采集网站文章。

    两个依赖项:

    request :https://github.com/request/request

    cheerio:https://github.com/cheeriojs/cheerio

    package.json文件:

    {
    "name":"zqz",
    "version":"1.0.1",
    "private":false,
    "dependencies":{
    "request":"*",
    "cheerio":"*"
    }
    }

    cdm中执行:npm install 进行安装依赖的2个包。

    app.js文件:

    /**
    * 数据采集
    */
    //引入需要的包
    var request = require('request');
    var cheerio = require('cheerio');
    
    //定义常量
    var dolphin = 'http://cn.dolphin.com/blog';
    
    //数据请求
    function dataRequest(dataUrl) {
    //发送请求
    request({
    url : dataUrl,
    method : 'GET'
    },function(err, red, body) {
    //请求到body
    if(err){
    console.log(dataUrl);
    console.error('[ERROR]Collection' + err);
    return;
    }
    
    if(dataUrl && dataUrl === dolphin){
    dataPraseDolphin(body);
    }
    })
    }
    
    /**
    * 解析html
    */
    function dataPraseDolphin(body) {
    
    var $ = cheerio.load(body);
    
    var atricles = $('#content').children('.status-publish');
    
    for(var i = 0;i < atricles.length;i++){
    var article = atricles[i];
    
    var $a = $(article).find('.post-title .entry-title a');
    var $p = $(article).find('.post-content p');
    
    var $aVal = $($a).text();
    var $pVal = $($p).text();
    
    if($p)
    {
    console.info('--------------'+ (i+1) +' Chapter------------------');
    console.info('标题:' + $aVal);
    console.info('简介:' + $pVal);
    console.info('时间:' + new Date)
    console.info('---------------------------------------------------');
    }
    }
    }
    
    //开始发送请求 并 采集数据
    dataRequest(dolphin);

    Sublime 中 ctrl+B 执行

    结果:

  • 相关阅读:
    Linux部署之批量自动安装系统之NFS篇
    Linux部署之批量自动安装系统之DHCP篇
    solarwinds之网络发现
    solarwinds之数据库
    solarwind之安装
    DHCP服务器的搭建
    iSCSI服务器的搭建
    js强制限制输入允许两位小数
    html5中的Web Storage
    js点击复制
  • 原文地址:https://www.cnblogs.com/zqzjs/p/5487348.html
Copyright © 2011-2022 走看看