js抓取网页内容(没错.js的学习中,可用于抓取其他网站的模块 )

优采云 发布时间: 2021-09-29 01:31

  js抓取网页内容(没错.js的学习中,可用于抓取其他网站的模块

)

  在node.js的学习中,可以用来捕获其他网站的模块是[cherio]。此模块不是node的内置模块,需要先安装:

  安装相应的模块

  安装命令:

npm install cheerio

  显式抓取对象

  安装cherio后,我们可以获取数据。让我们明确一下,要捕获的内容是网站,要捕获的代码如下:

  

  如图所示,要捕获的内容是图中标记的IMG图片。是的,它是下面的Kawaii蛋糕。哇,哇,哇~我想吃东西,而且名字也很好

  

  开始抓取

  我们已经定义了捕获的内容。现在让我们开始捕捉。在此之前,我们需要知道cherio收录jQuery核心的一个子集,也就是说,在操作cherio时,可以使用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;

}

  获取抓取结果

  获得的图片链接打印如下:

  

  为了验证信息的准确性,也为了使博客页面更少使用lotus root,该功能单击以抓取所附第一个链接的可爱甜点图片:

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线