js 请求blob:https:// 图片

news2024/11/15 6:50:17

方式1

def get_file_content_chrome(driver, uri):
    result = driver.execute_async_script("""
        var uri = arguments[0];
        var callback = arguments[1];
        var toBase64 = function(buffer){for(var r,n=new Uint8Array(buffer),t=n.length,a=new Uint8Array(4*Math.ceil(t/3)),i=new Uint8Array(64),o=0,c=0;64>c;++c)i[c]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(c);for(c=0;t-t%3>c;c+=3,o+=4)r=n[c]<<16|n[c+1]<<8|n[c+2],a[o]=i[r>>18],a[o+1]=i[r>>12&63],a[o+2]=i[r>>6&63],a[o+3]=i[63&r];return t%3===1?(r=n[t-1],a[o]=i[r>>2],a[o+1]=i[r<<4&63],a[o+2]=61,a[o+3]=61):t%3===2&&(r=(n[t-2]<<8)+n[t-1],a[o]=i[r>>10],a[o+1]=i[r>>4&63],a[o+2]=i[r<<2&63],a[o+3]=61),new TextDecoder("ascii").decode(a)};
        var xhr = new XMLHttpRequest();
        xhr.responseType = 'arraybuffer';
        xhr.onload = function(){ callback(toBase64(xhr.response)) };
        xhr.onerror = function(){ callback(xhr.status) };
        xhr.open('GET', uri);
        xhr.send();
        """, uri)
    if type(result) == int:
        raise Exception("Request failed with status %s" % result)
    return base64.b64decode(result)
bytes_data = get_file_content_chrome(driver, "blob:https://amazon-api.arkoselabs.com/8784ddf9-bbd2-48a6-b529-fc2bfcdaaebc")
# print('bytes_data:', bytes_data)
base64data0 = base64.b64encode(bytes_data).decode("utf8")
print('base64data0:', base64data0)
with open(f'./captcha0.jpg', 'wb') as file:
    file.write(bytes_data)

方式2

js_img = '''function getImageBlob(url, cb) {
    var xhr = new XMLHttpRequest();
    xhr.open("get", url, true);
    xhr.responseType = "blob";
    xhr.onload = function() {
        if (this.status == 200) {
            if(cb) cb(this.response);
        }
    };
    xhr.send();
}
function preView(url){
    let reader = new FileReader();
    getImageBlob( url , function(blob){
        reader.readAsDataURL(blob);
    });
    reader.onload = function(e) {
        img = document.querySelector('img#captchaimg')
        if(img){
            img.src = e.target.result;
            document.body.appendChild(img);
        }else{
            var img = document.createElement("img");
            img.id = 'captchaimg'
            img.src = e.target.result;
            document.body.appendChild(img);
        }
    }
}
preView("blob_image")'''
driver.execute_script(js_img.replace('blob_image', blob_image))
time.sleep(2)
captchaimg = driver.find_element(By.XPATH, '//img[@id="captchaimg"]').get_attribute('src')
print('captchaimg:', captchaimg)
base64data = captchaimg.split('base64,')[1]
with io.BytesIO(b64decode(base64data)) as image_file:
    image = Image.open(image_file)
    image.save('./captcha.jpg')
content_to_bytes = bytes(captchaimg.split('base64,')[1], 'utf-8')
with open(f'./captcha1.jpg', 'wb') as file:
    file.write(base64.decodebytes(content_to_bytes))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1923890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[WUSTCTF2020]funnyre

【【反调试】花指令patch与原理分析】https://www.bilibili.com/video/BV1mK411A75G?vd_source7ad69e0c2be65c96d9584e19b0202113 B站这个视频和这道题的花指令一样的 这个call百分之一万是辣鸡 重编译u他 经典辣鸡花指令 nop掉 下面一共有四处,一样的操作 然后回到main函…

奥利奥广告策略解析「扭一扭、舔一舔、泡一泡」广告为何深入人心?

作为一个多年的广告人&#xff0c;我认为奥利奥的「扭一扭、舔一舔、泡一泡」广告策略非常巧妙。今天可以从专业的角度来分析分析一下&#xff0c;大概应该有三大原因吧。 品牌识别度与记忆点&#xff1a; “扭一扭、舔一舔、泡一泡”这句广告语简洁易记&#xff0c;富有节奏…

如何30分钟下载完368G的Android系统源码?

如何30分钟下载完368G的Android系统源码&#xff1f; Android系统开发的一个痛点问题就是Android系统源码庞大&#xff0c;小则100G,大则&#xff0c;三四百G。如标题所言&#xff0c;本文介绍通过局域网高速网速下载源码的方法。 制作源码mirror 从源码git服务器A&#xff0c…

AGI 之 【Hugging Face】 的【问答系统】的 [评估并改进问答Pipeline] / [ 生成式问答 ] 的简单整理

AGI 之 【Hugging Face】 的【问答系统】的 [评估并改进问答Pipeline] / [ 生成式问答 ] 的简单整理 目录 AGI 之 【Hugging Face】 的【问答系统】的 [评估并改进问答Pipeline] / [ 生成式问答 ] 的简单整理 一、简单介绍 二、构建问答系统 三、评估并改进问答pipeline 1…

总结单例模式的写法

一、单例模式的概念 1.1 单例模式的概念 单例模式&#xff08;Singleton Pattern&#xff09;是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。就是当前进程确保一个类全局只有一个实例。 1.2 单例模式的优…

【postgresql】时间函数和操作符

日期/时间操作符 加减操作符&#xff1a; 和 - 可以用于日期、时间、时间戳和时间间隔的加减操作。 SELECT 2024-01-01::date INTERVAL 1 day as "date"; ; -- 结果&#xff1a;2024-01-02SELECT 2024-01-01 12:00:00::timestamp - INTERVAL 2 hours as "…

泽众一站式性能测试平台P-One监控指标的意义

在当今数字化和信息化高度发展的时代&#xff0c;企业把保障系统稳定运行、优化业务流程和提升用户体验摆在首要位置。然而&#xff0c;在现如今复杂的分布式系统中&#xff0c;各个组件和服务之间的交互频繁且紧密&#xff0c;当系统出现性能瓶颈时&#xff0c;传统的监测手段…

Flutter 初识:导航控件

Flutter导航控件小结 路由与导航Navigator核心方法属性示例基本导航示例替换当前页面并推入新页面使用命名路由动态生成路由额外的导航功能 完整示例代码 MaterialPageRoute属性示例 CupertinoPageRoute属性示例 应用栏与底部导航AppBar属性解析示例 BottomNavigationBar属性解…

gorm只查询某一些字段字段的方法Select, 和只查询某一字段方法 Pluck

gorm中默认是查询所有字段的&#xff0c; 如果我们只需要获取某些字段的值&#xff0c;可以通过使用 Select方法来指定要查询的字段来实现&#xff0c; 也可以通过定义一个需要字段的结构体来实现&#xff1b; 而如果我们只需要查询某一个字段的值就可以使用 Pluck方法来获取(这…

【Python】一文向您详细介绍 `isinstance()` 的原理、作用和使用场景

【Python】一文向您详细介绍 isinstance() 的原理、作用和使用场景 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985…

【精品资料】数字乡村一体化解决方案(45页PPT)

引言&#xff1a;数字乡村一体化解决方案是响应国家乡村振兴战略&#xff0c;依托现代信息技术和数字经济理念&#xff0c;对乡村进行全面改造和升级的综合框架。该方案旨在通过数字化手段&#xff0c;推动乡村产业、治理、文化、教育、医疗等领域的协同发展&#xff0c;实现乡…

2024年【通信安全员ABC证】实操考试视频及通信安全员ABC证考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年通信安全员ABC证实操考试视频为正在备考通信安全员ABC证操作证的学员准备的理论考试专题&#xff0c;每个月更新的通信安全员ABC证考试试题祝您顺利通过通信安全员ABC证考试。 1、【单选题】.重大事故一般由事故…

智慧水利解决方案:从理论到实践的全面跨越,展示其在水资源管理、水灾害预警、水生态保护等方面的创新应用

目录 一、引言&#xff1a;智慧水利的时代背景与意义 二、智慧水利的理论框架与技术体系 1、理论框架 2、技术体系 三、智慧水利在水资源管理中的应用 1、水资源优化配置 2、水量水质协同管理 四、智慧水利在水灾害预警中的应用 1、洪水预警与应急响应 2、干旱监测与评…

【学党史、悟思想、办实事、开新局】学习《中国共产党历史》一、鸦片战争与近代中国社会的演变

历史是最好的教科书。学习党史、国史&#xff0c;是坚持和发展中国特色社会主义、把党和国家各项事业继续推向前进的必修课。 而我们作为普通群众&#xff0c;学习跟了解历史是我觉得可以做到的最基本东西&#xff0c;从前有过一段时间对历史特感兴趣&#xff0c;如中国古代史…

AI算法15-弹性网络回归算法Elastic Net Regression | ENR

弹性网络回归算法简介 在机器学习领域中&#xff0c;弹性网络&#xff08;Elastic Net&#xff09;是一种结合了L1范数&#xff08;套索回归&#xff09;和L2范数&#xff08;岭回归&#xff09;的正则化方法。它综合了两者的优点&#xff0c;既可以实现特征选择&#xff0c;又…

从“卷模型”到“卷应用”:AI时代的价值重塑与个性化智能探索

&#x1f308;所属专栏&#xff1a;【其它】✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的点…

Java基础之集合

集合和数组的类比 数组: 长度固定可以存基本数据类型和引用数据类型 集合: 长度可变只能存引用数据类型存储基本数据类型要把他转化为对应的包装类 ArrayList集合 ArrayList成员方法 添加元素 删除元素 索引删除 查询 遍历数组

mqtt.fx连接阿里云

本文主要是记述一下如何使用mqtt.fx连接在阿里云上创建好的MQTT服务。 1 根据MQTT填写对应端口即可 找到设备信息&#xff0c;里面有MQTT连接参数 2 使用物模型通信Topic&#xff0c;注意这里的post说设备上报&#xff0c;那也就是意味着云端订阅post&#xff1b;set则意味着设…

向量索引【草稿】

用「向量」化数据表示「概念」。 向量表达:概念上更为接近的点在空间中更为聚集,而概念上更为不同的点,则距离更远。 向量数学表达:以坐标原点为起点,这些坐标点重点。 在语言上应用–词向量。 一个训练恰当的词向量集合,将和指代的事物之间的向量集合十分接近。有利于自…

记一次 .NET某上位视觉程序 离奇崩溃分析

一&#xff1a;背景 1. 讲故事 前段时间有位朋友找到我&#xff0c;说他们有一个崩溃的dump让我帮忙看下怎么回事&#xff0c;确实有太多的人在网上找各种故障分析最后联系到了我&#xff0c;还好我一直都是免费分析&#xff0c;不收取任何费用&#xff0c;造福社区。 话不多…