zoenbo 发表于 2023-10-4 17:08:42

大佬帮我看看这个图片怎么下载

https://service.ebook.hyread.com.tw/ebookservice/epubreader/hyread/v3/openbook2.jsp?device=web&sid=ED4FFE8AC41FF05D7EBFD0CCAEA8CEFE.jvm172&eid=324072&openmode=1&trial=page&returnAct=storeTrial&clientId=0&unit=hyread&ip=234.134.209.319&vid=ed8459fe977a48cfac6d91a5bdff574d&asset_id=8a8a84ca80f57c250186dec904e00604&localization=zh-TW&platform=web


我想下试阅的图片,但是BLOB的,不知道怎么弄,开发者管理工具/网络里可以预览并右键下载,但需要一张张另存为,并且还得改后缀,太麻烦了,用油猴怎么让它加载出来就自动下载成JPG或者PNG呢?(包括每次翻页后加载完也下)

求助众大佬大神~~

zoenbo 发表于 2023-10-4 19:07:45

無人問津,只好請教超級大佬了~ @李恒道

李恒道 发表于 2023-10-4 19:32:44

网站进不去
但是如果blob的话可以试试fileSaver看看
https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=1147
直接MutationObserve+FilerSaver应该就可以自动下载

zoenbo 发表于 2023-10-4 19:37:25

李恒道 发表于 2023-10-4 19:32
网站进不去
但是如果blob的话可以试试fileSaver看看
https://bbs.tampermonkey.net.cn/forum.php?mod=viewt ...

好的~我試試

李恒道 发表于 2023-10-4 19:52:56

zoenbo 发表于 2023-10-4 19:37
好的~我試試

哥哥先试试
主要网站是在进不去= =

zoenbo 发表于 2023-10-4 20:28:04

李恒道 发表于 2023-10-4 19:52
哥哥先试试
主要网站是在进不去= =

我不太会,用GPT写的代码不好用,
用这个网址,封面下边有个试阅按钮,https://ebook.hyread.com.tw/bookDetail.jsp?id=324072
才发现这个试阅页面只能打开一次,刷新页面就打不开了。

李恒道 发表于 2023-10-4 21:00:39

zoenbo 发表于 2023-10-4 20:28
我不太会,用GPT写的代码不好用,
用这个网址,封面下边有个试阅按钮,https://ebook.hyread.com.tw/book ...

这玩应我也进不去....

李恒道 发表于 2023-10-4 21:01:47

李恒道 发表于 2023-10-4 21:00
这玩应我也进不去....

saverAs直接存blob后边的url应该就行

zoenbo 发表于 2023-10-4 21:11:37

李恒道 发表于 2023-10-4 21:01
saverAs直接存blob后边的url应该就行

大佬,我用GPT生成的这,具体也不知道咋改,改了N次也用不了。这个网站得扶梯。
// ==UserScript==
// @name         Blob图片AUTODL
// @namespace    http://your-namespace.com
// @version      1.0
// @description监控并AUTO下载 Blob 图片
// @match      https://service.ebook.hyread.com.tw/*
// @grant      none
// ==/UserScript==

(function() {
// 创建 MutationObserver 实例
const observer = new MutationObserver((mutationsList) => {
    // 遍历每个 mutation
    for (const mutation of mutationsList) {
      // 检查是否有 img 元素的 src 属性变化
      if (mutation.type === 'attributes' && mutation.attributeName === 'src') {
      const img = mutation.target;
      const src = img.src;

      // 检查是否为 Blob URL
      if (src.startsWith('blob:')) {
          // 下载图片
          downloadBlobImage(src, img.alt || 'image.jpg'); // 使用 alt 属性作为文件名,如果没有则使用默认文件名 'image.jpg'
      }
      }
    }
});

// 监听 <img> 元素的 src 属性变化
observer.observe(document, { attributes: true, subtree: true, attributeFilter: ['src'] });

// 下载 Blob 图片
function downloadBlobImage(url, filename) {
    const xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.responseType = 'blob';
    xhr.onload = function() {
      if (xhr.status === 200) {
      const blob = xhr.response;
      const blobUrl = URL.createObjectURL(blob);
      const link = document.createElement('a');
      link.href = blobUrl;
      link.download = filename;
      link.style.display = 'none';
      document.body.appendChild(link);
      link.click();
      document.body.removeChild(link);
      URL.revokeObjectURL(blobUrl);
      } else {
      console.error('下载图片时出错:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('下载图片时出错');
    };
    xhr.send();
}
})();

李恒道 发表于 2023-10-4 22:21:28

zoenbo 发表于 2023-10-4 21:11
大佬,我用GPT生成的这,具体也不知道咋改,改了N次也用不了。这个网站得扶梯。
...

槽点有点多...
有兴趣还是手写吧
gpt压根就不是能写代码的东西

首先监听的不应该是document
其次src属性更改触发取决于技术栈的,如果是重新创建的话会监听不到
还有就是link点击触发下载会存在浏览器兼容问题
所以才推荐fileSaver
页: [1] 2
查看完整版本: 大佬帮我看看这个图片怎么下载