Node.js抓取网页信息(cheerio网络爬虫)

Node.js的学习中,可用于抓取其他网站的模块是【cheerio】,这个模块并不是node的内置模块,所以首先我们需要先安装一下:

安装对应模块

安装命令:
npm install cheerio

明确抓取对象

cheerio安装完毕后,我们就可以进行抓取数据了,我们先来明确一下,需要抓取的内容是一家甜点的网站,需要抓取的代码如下图:
这里写图片描述
如图所示,需要抓取的内容是图中标注出来的img的图片,没错就是下方那些卡哇伊的蛋糕,哇哇哇~好想吃,而且名字也取得好好听好好听!!!
这里写图片描述

开始抓取

好了,我们明确了抓取的内容,现在我们就开始进行抓取,在这之前,需要知晓的是,Cheerio 包括了 jQuery 核心的子集,也就是说在操作cheerio时,使用JQ的相关语法是都可以的,是不是很酷炫啊,哈哈哈,开始上代码:

var http = require("http");
var cheerio = require("cheerio");
//准备抓取的网站链接
var dataUrl = "http://www.mcake.com/shop/110/index.html#mainer_top";
http.get(dataUrl,function(res){
    var str = "";
    //绑定方法,获取网页数据
    res.on("data",function(chunk){
        str += chunk;
    })
    //数据获取完毕
    res.on("end",function(){
        //调用下方的函数,得到返回值,即是我们想要的img的src
        var data = getData(str);
        console.log(data);
    })
})
//根据得到的数据,处理得到自己想要的
function getData(str){
    //沿用JQuery风格,定义$
    var $ = cheerio.load(str);
    //获取的数据数组
    var arr = $(".pro_box a:nth-child(1) img");
    var dataTemp = [];
    //遍历得到数据的src,并放入以上定义的数组中
    arr.each(function(k,v){
        var src = $(V).attr("src");
        dataTemp.push(src);
    })
    //返回出去
    return dataTemp;
}

得到抓取结果

得到的图片链接,打印如下图:
这里写图片描述
为了验证的信息的准确性,也为了博文页面不那么吃藕,特点击抓取到的第一个链接的可爱的甜点图附上来:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/mytljp/article/details/79133612