上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
12下一页
返回列表 发新帖

请教如何在获取fetch response.text()之后转为blob

[复制链接]
  • TA的每日心情
    郁闷
    2022-12-30 16:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    3

    回帖

    6

    积分

    助理工程师

    积分
    6
    发表于 2022-12-30 09:55:11 | 显示全部楼层 | 阅读模式
    悬赏10油猫币未解决

    本帖最后由 asdfxed 于 2022-12-30 11:11 编辑

    在某些特殊情况下, 我只能获取text, 但是后续我需要转为blob或者arraybuffer, 请问如何处理呢
    测试脚本如下, 需要实现的是打开页面https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png之后, 下载的图片是和网页显示的一样, 而目前脚本下载的图片是无效的

    
    // ==UserScript==
    // @name         测试fetch
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  try to take over the world!
    // @author       You
    // @match        https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png
    // @icon         https://www.google.com/s2/favicons?sz=64&domain=baidu.com
    // @grant        none
    // ==/UserScript==
    
    fetch('https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png')
        .then(res=>res.text()) // 这里不能改, 只能res.text()
        .then(text=>{
    
        // 可修改区域开始
        let blob = new Blob([text]);
        // 可修改区域结束
    
        // 下面只是测试导出图片是否正确
        const a = document.createElement("a");
        const objectUrl = window.URL.createObjectURL(blob);
        a.download = '测试图片.jpg';
        a.href = objectUrl;
        a.click();
        window.URL.revokeObjectURL(objectUrl);
        a.remove();
    
    }).catch(e=>{console.log(e);});
    
    `

  • TA的每日心情
    慵懒
    4 小时前
  • 签到天数: 633 天

    [LV.9]以坛为家II

    30

    主题

    535

    回帖

    1408

    积分

    荣誉开发者

    积分
    1408

    荣誉开发者新人进步奖油中2周年生态建设者新人报道挑战者 lv2油中3周年喜迎中秋

    发表于 2022-12-30 10:24:08 | 显示全部楼层
    1. fetch('https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png')
    2.     .then(res=>res.blob())
    复制代码
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2022-12-30 16:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    3

    回帖

    6

    积分

    助理工程师

    积分
    6
    发表于 2022-12-30 10:27:37 | 显示全部楼层

    不能改这里, 只能res.text()
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    637

    主题

    5194

    回帖

    6076

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6076

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2022-12-30 14:45:41 | 显示全部楼层
    不太理解为啥不能动其他函数...
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2022-12-30 16:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    3

    回帖

    6

    积分

    助理工程师

    积分
    6
    发表于 2022-12-30 15:16:20 | 显示全部楼层
    李恒道 发表于 2022-12-30 14:45
    不太理解为啥不能动其他函数...

    就某些特殊限制, 只能获取res.text()
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    637

    主题

    5194

    回帖

    6076

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6076

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2022-12-30 16:57:49 | 显示全部楼层
    asdfxed 发表于 2022-12-30 15:16
    就某些特殊限制, 只能获取res.text()

    这个帮不到哥哥了...
    直觉来说可能图片转成text的时候已经造成字符损坏了吧...
    对编码不太熟悉
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2022-12-30 16:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    3

    回帖

    6

    积分

    助理工程师

    积分
    6
    发表于 2022-12-30 17:13:16 | 显示全部楼层
    李恒道 发表于 2022-12-30 16:57
    这个帮不到哥哥了...
    直觉来说可能图片转成text的时候已经造成字符损坏了吧...
    对编码不太熟悉 ...

    没事, 我更不熟悉哈哈
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    862

    回帖

    1361

    积分

    荣誉开发者

    积分
    1361

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-12-31 12:19:09 | 显示全部楼层
    图片转字符串以后会对字节流造成不可逆的破坏,原因是utf8编码过程中,一些不同的字节会被转换成相同的结果,比如你输出text的话可以看到一堆�,这些�实际上是不同的,在utf8编码下被视为相同,这导致转换过程不可逆。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-14 00:00
  • 签到天数: 119 天

    [LV.6]常住居民II

    29

    主题

    598

    回帖

    535

    积分

    专家

    积分
    535

    油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-12-31 13:35:51 | 显示全部楼层
    cxxjackie 发表于 2022-12-31 12:19
    图片转字符串以后会对字节流造成不可逆的破坏,原因是utf8编码过程中,一些不同的字节会被转换成相同的结果 ...

    已经造成了不可逆的破坏,为什么还要去想着修复?
    这个帖子看了好几遍了,// 这里不能改, 只能res.text(),为什么不能改呀大佬们都不理解,这是硬生生被尿憋死的姿势。
    @cxxjackie 哥哥龙体无恙否,几天不看你发言还以为你像李恒道一样哈勒西了
    入驻爱发电 让这世界充满爱 https://afdian.net/a/vpannice
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    862

    回帖

    1361

    积分

    荣誉开发者

    积分
    1361

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-12-31 19:46:25 | 显示全部楼层
    脚本体验师001 发表于 2022-12-31 13:35
    已经造成了不可逆的破坏,为什么还要去想着修复?
    这个帖子看了好几遍了,// 这里不能改, 只能res.text() ...

    没阳,只是感冒了,而且论坛这几天没什么贴子啊。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表