美文网首页
利用request模块做一个爬取京东产品详情页图片的小案例

利用request模块做一个爬取京东产品详情页图片的小案例

作者: 深漂浪子 | 来源:发表于2019-06-04 17:59 被阅读0次

准备工作:

在成功安装了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文件

相关文章

网友评论

      本文标题:利用request模块做一个爬取京东产品详情页图片的小案例

      本文链接:https://www.haomeiwen.com/subject/hogcxctx.html