js 抓取网页内容( 没错就是下方那些卡哇伊的蛋糕,哇哇哇~!! )
优采云 发布时间: 2021-10-08 03:11js 抓取网页内容(
没错就是下方那些卡哇伊的蛋糕,哇哇哇~!!
)
<p>Node.js的学习中,可用于抓取其他网站的模块是【cheerio】,这个模块并不是node的内置模块,所以首先我们需要先安装一下:
安装对应模块
安装命令:
npm install cheerio</p>
明确获取对象
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;
}
获取抓取结果
得到的图片链接,打印如下图片:
为了验证信息的准确性,也为了让博文页面不那么好吃,请点击我抓取的第一个链接的可爱甜点图片并附上: