准备工作:
在成功安装了 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
来源: http://www.qdfuns.com/note/48922/c34cb5d93c19052fa77bf5262b9c1342.html