爬虫

作者: 小草莓蹦蹦跳 | 来源:发表于2017-11-01 20:37 被阅读0次
    • request
      • 获取对应的html片段,但是不能获取片段中的标签

      • request:第一个参数表示对应的请求的url地址

      • 第二个参数表示回调

      • 回调中有三个参数,第一个参数表示错误

      • 第二个参数表示返回的响应

      • 第三个参数表示实际的响应体

    var request = require('request');
    
    /*request:获取对应的html片段,但是不能获取片段中的标签*/
    
    /*request:第一个参数表示对应的请求的url地址
     * 第二个参数表示回调
     * 回调中有三个参数,第一个参数表示错误
     * 第二个参数表示返回的响应
     * 第三个参数表示实际的响应体*/
    
    request('http://www.jianshu.com/',function (error, response, body) {
        
        /*出错的原因*/
        console.log('error:', error);
    
        /*打印相应码*/
        console.log('statusCode:', response && response.statusCode);
    
        /*响应体:即html页面中的内容*/
        console.log('body:',body);
    });
    
    • 如果我们想要获取片段中的标签,我们需要借助cheerio这个包,把对应的html片段转化成jquery对象
    /*request:获取对应的html片段,但是不能获取片段中的标签
     * 如果我们想要获取片段中的标签,我们需要借助cheerio这个包
     * 把对应的html片段转化成jquery对象*/
    var cheerio = require('cheerio');
    
    /*load:参数表示对应html片段
     * 这个方法可以把html片段转化成一个jquery对象,我们就可以通过jquery对象来操控对应的标签*/
    
    var $ = cheerio.load('<h2 class="title">Hello world</h2>');
    
    $('.title').text('Hello there!');
    $('h2').addClass('welcome');
    
    console.log($.html());
    
    • request、cheerio和iconv-lite的综合运用
    var request = require('request');
    var cheerio = require('cheerio');
    var iconV = require('iconv-lite');
    
    /*我们node.js默认的编码格式是utf8,但是对应的爬虫导入的包使用的编码格式是gb2312
     * 我们可以使用request默认的编码就是gb2312,但是当我们获取对应的body后我们需要对body
     * 进行解码*/
    /*request第一个参数可以是一个字典
     *实际开发中,我们有时候需要请求的时候设置多个参数
     * 一个url不能满足条件,所以我们需要使用字典 */
    
    var option = {
        /*设置url 设置请求方法,设置对应的编码格式*/
        // url:'http://edu.qq.com',
        // encode: null,//使用默认编码格式
        //
        // method:'GET'
        method:'GET',
    
        /*使用默认的编码格式,这里一定要赋值为null*/
        encoding:null,
        url:'http://tech.qq.com'
    };
    
    request(option,function (err, response, body) {
    
        /*当我们获取对应body的时候,我们需要对他进行解码
         * decode:第一个参数表示解码的值
         * 第二个参数表示解码的格式*/
        body = iconV.decode(body,'gb2312');
    
        /*body转化成jquery对象*/
        var $ = cheerio.load(body);
    
        console.log($('.color_black').text());
    
    });
    
    

    相关文章

      网友评论

          本文标题:爬虫

          本文链接:https://www.haomeiwen.com/subject/qjzgpxtx.html