Nodejs搭配axios下载图片

新建一个文件夹,npm i axios

实测发现只需保留node_modules文件夹,删除package.json不影响使用

1.纯下载图片

其实该方法不仅可以下载图片,其他的文件都可以下载

复制代码
const axios = require('axios')
const fs = require('fs')
var arrPic = ['https://tva1.sinaimg.cn/large/9ed5c127gy1gxbaj7wmu0j20j00g9tc3.jpg', 'https://tva1.sinaimg.cn/large/9ed5c127gy1gxbaf5rt0hj20ht0g60us.jpg']
arrPic.forEach((v, k) => {
  if (v == '') {
    console.log('======1111空文件地址')
    return
  }
  var arr = v.split('/')
  var fileName = arr.pop()
  fetchPic(v, fileName)
})

function fetchPic(picUrl, fileName) {
  axios({
    method: 'get',
    url: picUrl,
    responseType: 'arraybuffer',
  }).then(
    function (response) {
      fs.writeFileSync(fileName, response.data)
    },
    (e) => {
      console.log('错误', e)
    }
  )
}

从html文件中获取图片地址

替换部分图片地址并生成新文件及下载

用于wordpress文章正文里面的外链图片的替换

复制代码
let fs = require('fs')
const axios = require('axios')

/*
 * 下面3行是把图片地址前半段进行正则替换,并写入新的文件内
 */
var htmlStr = fs.readFileSync('./post.html', 'utf8')
var lastData = htmlStr.replace(/https:\/\/tva1.sinaimg.cn\/large\//g, 'https://pic.xxx.com/')
fs.writeFileSync('./after.html', lastData)




// 定义正则表达式来匹配图片地址
//var regex = /<img[^>]+src\s*=\s*['"]([^'"]+)['"][^>]*>/g;
var regex = /https?:\/\/tva1\S+\.(?:jpg|jpeg|png|gif)/g;
//arrPic = htmlStr.match(/https:\/\/tva1.+(\.jpg|\.jpeg|\.png|\.gif)/)
var matches = [];
var match;
while ((match = regex.exec(htmlStr)) !== null) {
  matches.push(match[0]);
}

// 输出匹配到的所有图片地址

matches.forEach((v, k) => {
  if (v == '') {
    console.log('======空文件地址')
    return
  }
  var arr = v.split('/')
  var fileName = arr.pop()
  getPic(v, fileName)
})

function getPic(picUrl, fileName) {
  axios({
    method: 'get',
    url: picUrl,
    responseType: 'arraybuffer',
  }).then(
    function (response) {
      fs.writeFileSync(fileName, response.data)
      //  response.data.pipe('c:\\user\\aexx\\Desktop' + fs.createWriteStream(fileName))
    },
    (e) => {
      console.log('错误', e.response.status)
    }
  )
}
相关推荐
WordPress学习笔记2 小时前
建wordpress网站公司推荐几个
wordpress
探索宇宙真理.4 小时前
Smart Slider 3 WordPress 插件任意文件读取漏洞 | CVE-2026-3098复现&研究
经验分享·wordpress·安全漏洞
syjy26 小时前
(含下载)Salient WordPress 主题使用教程|2026 新手实操指南
wordpress·wordpress主题
syjy21 天前
(含下载)FileBird Pro WordPress插件使用教程
wordpress·wordpress插件·wordpress建站
fobwebs2 天前
wordpress GEO插件指南
人工智能·wordpress·geo·ai搜索优化·geo优化
fobwebs3 天前
如何通过phpmyadmin指令来优化数据库表,给数据库“减肥”。
数据库·wordpress·数据库优化·phpmyadmin
Web极客码3 天前
如何自定义WordPress主题,让你的网站更独特
主题·wordpress·网站
Web极客码4 天前
WordPress 图片库创建方法与优化策略
seo·主机·wordpress
WordPress学习笔记4 天前
wordpress网站上传不了图片可能是文件夹的权限的原因
运维·wordpress·文件夹权限·uploads·wordpress上传错误
syjy24 天前
Avada wordpress主题使用教程(含下载)
wordpress·建站·wordpress主题