zoukankan      html  css  js  c++  java
  • 用js脚本一键下载网页所有图片

    年前这两天稍微闲一点了,琢磨了一点js脚本,功能是把当前网页页面上的所有图片一次性保存到本地,免得每次都要对图片右键保存。

    测试环境:Chrome开发者模式下(启动Chrome,按F12即可)

    测试网页:知乎某问题

    原理很简单,用到了a标签的href及download属性和点击事件。

    直接贴代码吧:

     1 //一个对象,存储页面图片数量和下载的数量
     2 var monitorObj = {
     3     imgTotal: 0,
     4     imgLoaded: 0
     5 }
     6 //创建a标签,赋予图片对象相关属性,并插入body
     7 var createA = function (obj) {
     8     var a = document.createElement("a");
     9     a.id = obj.id;
    10     a.target = "_blank";//注意:要在新页面打开
    11     a.href = obj.url;
    12     a.download = obj.url;
    13 
    14     document.body.appendChild(a);
    15 }
    16 
    17 //获取页面的图片
    18 var imgs = document.images;
    19 //创建每个图片对象的对应a标签
    20 for (var i = 0; i < imgs.length;i++){
    21     var obj = {
    22         id: "img_" + i,
    23         url: imgs[i].src
    24     }
    25     //过滤掉不属于这几种类型的图片
    26     if (["JPG", "JPEG", "PNG","GIF"].indexOf(obj.url.substr(obj.url.lastIndexOf(".")+1).toUpperCase()) < 0) {
    27         continue;
    28     }
    29     //这里是为了去掉知乎用户头像的图片,头像大小是50*50
    30     if (imgs[i].width <= 50 || imgs[i].height <= 50) {
    31         continue;
    32     }
    33     //统计图片数量
    34     monitorObj.imgTotal++;
    35     createA(obj);
    36 }
    37 //开始下载图片
    38 for (var i = 0; i < imgs.length; i++) {
    39     if (document.getElementById("img_" + i)) {
    40         //重点:触发a标签的click事件        
    41         document.getElementById("img_" + i).click();
    42         monitorObj.imgLoaded++; //统计已下载的图片数量
    43     } 
    44 } 
    45 console.log("已下载:"+monitorObj.imgLoaded + "/" + monitorObj.imgTotal);

    把上面的代码拷贝出来,粘贴到Chrome的Console命令行,回车即可。

    当然实现保存图片的方法还有很多,这里仅作娱乐。

    也许你很想试一试,那么可以点这里

  • 相关阅读:
    谁来催生国产中高档数控系统市场
    对于HBase的MapReduce性能提升方案之BulkLoad
    数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes
    遇见程序猿男朋友
    理解class.forName()
    正则表达式
    java实现第七届蓝桥杯棋子换位
    java实现第七届蓝桥杯机器人塔
    java实现第七届蓝桥杯机器人塔
    java实现第七届蓝桥杯凑平方数
  • 原文地址:https://www.cnblogs.com/mzyj/p/8445153.html
Copyright © 2011-2022 走看看