1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Node.js抓取网页信息(cheerio网络爬虫)

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

时间:2019-03-27 01:40:58

相关推荐

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 = "/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的srcvar 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;}

得到抓取结果

得到的图片链接,打印如下图:

为了验证的信息的准确性,也为了博文页面不那么吃藕,特点击抓取到的第一个链接的可爱的甜点图附上来:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。