JS 下载网络图片,并且修改图片名称

使用技术: NodeJS

gitHub地址: https://github.com/smallwhy/img-load-uptname

1、新建项目img-load-uptname

2、打开项目安装cheerio

npm install cheerio

3、安装request

npm install request

4、新建index.html

<html>
  <head>
    <meta charset="utf-8">
  </head>

  <body>
    <table border="1">
      <tr>
        <td>baidu-logo</td>
        <td>https://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png</td>
      </tr>
      <tr>
        <td>baidu-bgimg-1</td>
        <td>https://dss1.bdstatic.com/kvoZeXSm1A5BphGlnYG/skin/1.jpg</td>
      </tr>
      <tr>
        <td>baidu-bgimg-2</td>
        <td>https://dss1.bdstatic.com/kvoZeXSm1A5BphGlnYG/skin/2.jpg</td>
      </tr>
    </table>
  </body>
</html>

5、新建load.js

const cheerio = require(‘cheerio‘);
var fs = require(‘fs‘);
var request = require(‘request‘);

fs.readFile("./index.html","utf-8",function(err,data){ // 读取文件index.html
    if(err) {
      console.log("index.html loading is failed :"+err);
    }
    else{
        //返回index.html页面
        var $ = cheerio.load(data); // data为index.html内容
        var tr_list = $(‘table tr‘);
        tr_list.each((index, item) => {
            var imgName = $(item).find(‘td‘).eq(0).text(); // 下载文件的最终命名
            var imgUrl = $(item).find(‘td‘).eq(1).text(); // 下载文件的URL
            var writeStream = fs.createWriteStream(‘./imgs/‘+imgName + imgUrl.substring(imgUrl.lastIndexOf(‘.‘))); // 创建写入流
            var readStream = request(imgUrl); // 读取流
            readStream.pipe(writeStream);
            readStream.on(‘end‘, function() { // 读取文件
                console.log(‘文件下载成功‘);
            });
            readStream.on(‘error‘, function() {
                console.log("错误信息:" + err)
            });
            writeStream.on("finish", function() { // 写入文件
                console.log("文件写入成功");
                writeStream.end();
            });
        });
    }

});

6、新建存放下载图片的文件夹imgs

7、命令行执行load.js

node load.js

最终结果:

项目目录结构:

原文地址:https://www.cnblogs.com/zero-zm/p/12559277.html

时间: 2024-08-02 22:06:35

JS 下载网络图片,并且修改图片名称的相关文章

MATLAB批量修改图片名称

申明:转载请注明出处. 设在“D:\UserDesktop\pic\”目录下有很多张格式为jpg照片,命名不规则,如图. 现在用MATLAB批量修改所有图片的命名格式,改为1.jpg,2.jpg,.... 1 path = 'D:\UserDesktop\pic\'; 2 D = dir([path '*.jpg']);//图片路径 3 for i = 1:length(D) 4 a = imread([path D(i).name]);//批量读取图片名称 5 system(['ren 'a'

C#根据execl批量修改图片名称

做这个是出于有这个需求由于图片太多,一个个对着execl来改的话需要大量的时间且一不小心可能就改错导致图片放到服务器上无法显示,学会了一些编程,你就可以轻松解决此类问题.为了节省时间提高工作的效率.学编程好处远远不仅在于此.好好学吧.任重道远. 第一.什么上下文对象和统计受影响的数量: DataContext db = new DataContext(); private int materiel_count = 0; //开始的记录数 第二.读取execl表 public DataSet Ex

django上传图片简单验证以及自动修改图片名称

django实现文件(图片)上传之后自动修改名称以及页面上传图片时的各种提醒: 1.先在你项目中添加一个文件夹如:system 在文件夹下添加__init__.py 和storage.py文件,并在storage.py中添加如下代码: # -*- coding:utf-8 -*- from django.core.files.storage import FileSystemStorage from django.http import HttpResponse class ImageStora

考试系统维护-批量修改图片名称

英语考试,按照老师的要求需要添加学生图片头像!就是让学生登录自己的信息的时候能够看到自己的头像!效果图如下:(照片省略) 其实添加进去很容易,不过就是弄个字符串,按照输入的学号来选择自己的照片就好!前几天的时候自己尝试了,不过由于当时没有全局观,并没有仔细看清图片的名字,最后仔细观察才知道,原来老师给的考试号并没有什么规律,纯属是高考时候的高考号啊!不过这可就犯难了!考生登陆考试系统都是根据各自的学号登陆的,这图片的名字直接使用考试号登记的,和之前的就不相吻合了!所以就想到了'批量修改',其实很

python批量修改图片名称

1 import os 2 import re 3 import sys 4 path = r"C:\Users\liyq\Desktop\python-img\img" 5 fileList = os.listdir(path) # 待修改文件夹 6 print("修改前:" + str(fileList)) # 输出文件夹中包含的文件 7 os.chdir(path) # 将当前工作目录修改为待修改文件夹的位置 8 num = 1 # 名称变量 9 for fi

批量修改图片名称

<?php // glob() 返回指定目录下的文件名以及目录 $arr = glob("img/*.jpg"); $time = time(); $i = 100001; // 循环遍历 foreach($arr as $file) { // 获取图片后缀名 $ext = pathinfo($file,PATHINFO_EXTENSION); // 确定图片的新名字 $name = $time.$i++ . "." . $ext; // 重命名 rename

js下载浏览器中的图片

jquery function download(src) { var $a = $("<a></a>").attr("href", src).attr("download", "img.png"); $a[0].click(); } 原生javascript function download(src) { var $a = document.createElement('a'); $a.setAtt

WPF 修改图片颜色

原文:WPF 修改图片颜色 本文告诉大家如何修改图片的颜色,如去掉图片的蓝色 在 WPF 可以使用很多图片处理的方法,本文告诉大家的是一个图片处理,可以把处理的图片保存在文件. 在阅读本文,我假设大家是熟悉 WPF 的,至少了解 C# ,也知道图片的格式. 在 WPF 可以使用 ARBG 数组表示图片,本文修改图片颜色的方法就是使用 ARBG 数组的方法修改,修改里面的元素的值. 如我需要去掉图片的蓝色,就可以通过修改 ARBG 数组的元素,设置所有蓝色为 0 ,去掉蓝色. 读取图片 首先找到一

Android实战简易教程-第七十一枪(异步网络下载网络图片及图片廊制作)

首先来实现异步下载网络图片,布局文件如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_pare