如何通过代码保存 通用免费图片api返回的图片

前端html 有没有朋友使用过 免费图片api 的朋友,我遇到一个问题。
我在代码中使用

  id="banner" src="https://api.likepoems.com/img/nature" alt="图片">

此时会正常出现一张图片。
但我想 通过代码 保存这张图片,应该怎么做,因为这个 src 属性 是一个通用地址。每次刷新都是新图片。
后端是php。


 downloadIamge (imgsrc, name) { // 下载图片地址和图片名
        var image = new Image()
        // 解决跨域 Canvas 污染问题
        image.setAttribute('crossOrigin', 'anonymous')
        image.onload = function () {
          var canvas = document.createElement('canvas')
          canvas.width = image.width
          canvas.height = image.height
          var context = canvas.getContext('2d')
          context.drawImage(image, 0, 0, image.width, image.height)
          var url = canvas.toDataURL('image/png') // 得到图片的base64编码数据
          var a = document.createElement('a') // 生成一个a元素
          var event = new MouseEvent('click') // 创建一个单击事件
          a.download = name || 'photo' // 设置图片名称
          a.href = url // 将生成的URL设置为a.href属性
          a.dispatchEvent(event) // 触发a的单击事件
        }

封装个方法下载 下来 。img 的src 是动态的。点击下载把 src传到函数里

downloadFile = ((fileurl, filename) => { //fileurl文件地址(一般是接口返回) filename文件下载后的名字
        console.log("3333")
        var a = document.createElement('a');
        a.download = filename; //下载后文件名
        a.style.display = 'none';
        var blob = new Blob([fileurl]);  // 字符内容转变成blob地址 二进制地址
        a.href = URL.createObjectURL(blob);
        document.body.appendChild(a);
        a.click();                        // 触发点击
        document.body.removeChild(a);    // 然后移除
 
    });

https://blog.csdn.net/weixin_44058725/article/details/103667552