爬虫

2017-11-01  本文已影响0人  小草莓蹦蹦跳
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);
});
/*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());
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());

});

上一篇下一篇

猜你喜欢

热点阅读