js 抓取网页内容( 没错就是下方那些卡哇伊的蛋糕,哇哇哇~!! )

优采云 发布时间: 2021-10-08 03:11

  js 抓取网页内容(

没错就是下方那些卡哇伊的蛋糕,哇哇哇~!!

)

  <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;

}

  获取抓取结果

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

  

  为了验证信息的准确性,也为了让博文页面不那么好吃,请点击我抓取的第一个链接的可爱甜点图片并附上:

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线