准备工作:
在成功安装了nodejs的前提下,再分别安装好request和cheerio等第三方模块:
安装request: npm install --save request(个人推荐使用cnpm安装)
安装cheerio:npm install cheerio
编写js文件:request.js
以京东的零食页面为例,每次只需要把页面的url地址复制一遍,然后手动更改下文件夹dir的路径就可以把图片爬取到相应的文件夹内
//引入核心模块fs文件模块
const fs = require("fs");
//引入第三方模块request模块
const request = require("request");
//引入第三方模块cheerio模块
const cheerio = require("cheerio");
const url = "https://item.jd.com/3444503.html";
// 定义将你的图片存入的文件夹
const dir = "./img/food1";
fs.mkdir(dir,(err)=>{});
let arr = [];
request(url,(err,res,body)=>{
if(!err && res.statusCode == 200){
const $ = cheerio.load(body);
//多张小图片路径的爬取:
let imgs = $(".spec-items>.lh>li>img");
for(var i=0;i<imgs.length;i++){
arr.push(imgs.eq(i).attr("src"));
}
//下载并对图片重命名
for(var i=0;i<arr.length;i++){
download("https:"+arr[i],dir,Date.now()+"food"+i+arr[i].substr(-4,4));
}
//单张大图的爬取:
let maxImg = $(".main-img>img");
var msrc = maxImg.attr("data-origin");
download("https:"+msrc,dir,Date.now()+"xiaomi_big"+msrc.substr(-4,4));
}
})
//封装下载的方法
//url 图片的真实路径 dir 你要存图片的文件夹名称 filename 你要存图片的文件名称
let download = (url,dir,filename)=>{
//下载图片的一种方法
request.head(url,()=>{
//当下载成功以后将这个图片通过管道的形式放在./img/你的二级文件夹/filename
request(url).pipe(fs.createWriteStream(dir+"/"+filename))
})
}
3、运行文件
初始化backpage.json包 npm init -y
安装node_modules文件 npm install
运行 node request
此案例需要用到node.js文件