我是靠谱客的博主 称心黑夜,最近开发中收集的这篇文章主要介绍nodejs一键扒文件夹下所有代码中的图片链接到到本地,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

var fs = require('fs');
var path = require('path');
var request = require('request')
const dirname = ''//图片的一级路径
const hostdir = "./"
var filePath = path.resolve('文件夹路径');
//调用文件遍历方法
fileDisplay(filePath);
var reg = /http.*?(jpg|gif|png)/g;
var reg1 = /pass.*?(jpg|gif|png)/g;
let imgList = [];
/**
 * 文件遍历方法
 * @param filePath 需要遍历的文件路径
 */
function fileDisplay(filePath) {
    //根据文件路径读取文件,返回文件列表
    fs.readdir(filePath, function (err, files) {
        if (err) {
            console.warn(err)
        } else {
            //遍历读取到的文件列表
            files.forEach(function (filename) {
                //获取当前文件的绝对路径
                var filedir = path.join(filePath, filename);
                //根据文件路径获取文件信息,返回一个fs.Stats对象
                fs.stat(filedir, function (eror, stats) {
                    if (eror) {
                        console.warn('获取文件stats失败');
                    } else {
                        var isFile = stats.isFile();//是文件
                        var isDir = stats.isDirectory();//是文件夹
                        if (isFile) {
                            // console.log(filedir.substring(filedir.length - 4, filedir.length ));
                            if (filedir.substring(filedir.length - 4, filedir.length) == 'wxml'|| filedir.substring(filedir.length - 4, filedir.length) == 'wxss') {
                                var data = fs.readFileSync(filedir, 'utf-8');
                                	console.log(data)
                                if (data.match(reg) != null && data.match(reg).length > 0) {

                                    downloadUrl(data.match(reg))
                                    
                                }
                            }
                        //其他条件可以自己写
                           
                        }
                        if (isDir) {
                            fileDisplay(filedir);//递归,如果是文件夹,就继续遍历该文件夹下面的文件
                        }
                    }
                })
            });
        }
    });
}

function mkdirSync(dirname) {
    if (fs.existsSync(dirname)) {
        return true;
    } else {
        if (mkdirSync(path.dirname(dirname))) {   
            fs.mkdirSync(dirname);
            return true;
        }
    }
    return false
}

function downloadUrl(urlList) {
    for (const url of urlList) {
      const first = url.indexOf(dirname)
      const last = url.lastIndexOf('/')
      // console.log(first,last)
      if (first > 0 && last > 0) {
        const name = url.substr(last + 1)
        const dir = url.substr(first, last - first)
        const dstpath = hostdir + dir + '/' + name
        if (name.length && dir.length && !fs.existsSync(dstpath)) {
          if (mkdirSync(hostdir + dir)) {
            console.log('1',dstpath)
            request(url).pipe(fs.createWriteStream(dstpath))
          }
        }
      }
    }
}

先把需要的node模块安装好,然后遍历文件夹,读取文件,找出所有图片地址,下载到本地。

 

最后

以上就是称心黑夜为你收集整理的nodejs一键扒文件夹下所有代码中的图片链接到到本地的全部内容,希望文章能够帮你解决nodejs一键扒文件夹下所有代码中的图片链接到到本地所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部