python selenium下载图片_selenium下载图片(原图)
最近在用selenium爬取一些数据,其中就要攻破验证码,奈何selenium本身没有直接保存图片的功能,经过一番度娘,对网上的方法不是很赞同,大体上有下面两种方法:
整个页面截图,然后根据获取的Element大小切割图像
使用鼠标和键盘事件模拟另存操作
我认为第一种方法再某些情况下可能会造成图片清晰度丢失,因为有些网站的图片是经过css限制了大小展示在页面上,如果截图的话,势必图像像素变小,清晰度降低。第二种方法可以实现,但是太复杂,中间鼠标、键盘还不能有其他动作,抗干扰能力差。
经过一番思考,我突然想到之前做的一个需求:在一个单页面应用上下载文件。当时是使用window.open实现的,但是新用户在使用的时候浏览器总会拦截,这样的体验不是很好。因此后来又改良了一下,使用XMLHttpRequest请求,返回blob,然后构造一个a标签,填充base64,完成下载,代码如下:
var url = 'url';
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = blob;
xhr.onload = function() {
if (this.status === 200) {
varblob = this.response;
varreader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function(e) {
vara = document.createElement('a');
a.download = 'aaa.jpg';
a.href = e.target.result;
$(body).append(a);
a.click();
$(a).remove();
}
}
};
xhr.send();
后面的事情就不用多说了,文件已经下载下来,而且是源文件。需要的小伙伴快去试试吧~~
python selenium下载图片_selenium下载图片(原图)相关推荐
- python+selenium爬虫自动化批量下载文件
一.项目需求 在一个业务网站有可以一个个打开有相关内容的文本,需要逐个保存为TXT,数据量是以千为单位,人工操作会麻木到崩溃. 二.解决方案 目前的基础办法就是使用python+selenium自动化 ...
- Python——selenium自动点击下载腾讯文档
成功属于有准备的人 腾讯文档使用selenium方法点击下载,早前写的,现下网页格局可能有所改变. 代码基本都有注释. 那时刚入坑不久,代码不好看还望见谅. from bs4 import Beaut ...
- Python + Selenium(九)- 解决图片验证码登录或注册问题
1. 解决思路 首先要获得这张验证码的图片,但是该图片一般都是用的js写的,不能够通过url进行下载. 解决方案:截图然后根据该图片的定位和长高,使用工具进行裁剪 裁剪完毕之后,使用工具解析该图片. ...
- python selenium 关闭窗口_Selenium快速上手实战 | 上篇
前言 Selenium是一个用于Web应用程序的自动化测试工具.它直接运行在浏览器中,可以模拟用户在浏览器上面的行为操作. 在AirtestIDE中,开发者也给我们提供了使用Selenium的窗口.不 ...
- python selenium高级教程_selenium(python)教程
Updated on Aug-11-2019 今天再试了一下,发现自己的chrome安装路径变成"C:\Users\Kevin\AppData\Local\Google\Chrome\App ...
- python selenium 处理弹窗_Selenium自动化发布话题,以及获取window.showModalDialog()弹窗对象(Python实现)...
折腾了一下自动化测试,找到了阿里开源的一个 uirecorder ,可以自动录制测试过程,但自定义逻辑有些麻烦 然后发现这货是基于 selenium 实现的,于是就开始折腾起了 selenium,弄出 ...
- python selenium模拟键盘_SELENIUM自动化模拟键盘快捷键操作实现解析
这篇文章主要介绍了SELENIUM自动化模拟键盘快捷键操作实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 平常我们会用到很多快捷键,那么se ...
- python selenium post请求_selenium爬虫中的post坑
Selenium是一款比较常见的web应用自动化测试库,它支持多种浏览器,多用于在爬虫中解决JavaScript渲染问题. 当requests,urllib*无法正常获取网页内容的时候,用它模拟浏览器 ...
- python selenium翻页_Selenium翻页的实现方法实例
在实际测试项目中,会出现新增数据记录不显示在第一页,而是显示最后一页,对于这种情况,那我们要根据每页显示数据数来进行翻页,保证代码能够准确拿到数据文本来做结果比对. 第一步:在基础类BaseTest中 ...
- python selenium下载_Python Selenium安装下载
本篇讲解Python Selenium如何安装,下载.本篇已假定你已经熟悉Python,并且已安装好Python和pip. 本篇及以后篇幅所讲代码都调试运行在Python3.6版本上通过. Pytho ...
最新文章
- 可以把阿里云上面的一些介绍和视频都看看
- Java系列:关于Java中的桥接方法
- codeforces808G Anthem of Berland(kmp+自动机+dp)
- 页面生命周期:DOMContentLoaded, load, beforeunload, unload
- Eclipse python 开发环境配置
- Openfire4源码部署到eclipse中并编译
- LeetCode 572. 另一个树的子树 思考分析
- [MySQL] INFORMATION_SCHEMA 数据库包含所有表的字段
- windows内核初窥(二)-----系统机制
- UITableView 编辑和删除行
- ue4账号注册不了_英雄联盟手游拳头账号注册
- ibatis_HelloWorld
- 元素查找(xpath)
- 村田【元宇宙】要火,但不能“起火”—— 电池:半固态凝胶软包电池篇
- 消息认证码 EMAC
- AVFoundation学习记录
- Android面试必问!记录下我磕磕碰碰的三个月找工作经历,面试心得体会
- [编程题]:n头牛中选择满足所有m种特性的牛(百度2021)
- 电路方程的矩阵形式 c语言,电路方程的矩阵形式
- Docker 常见使用