引言

小编在在一些批量下载图片的爬虫程序的过程中,发现了一种被base64加密的图片,今天一个京东案例带大家彻底掌握base64加密破解,建议大家先看视频再去研究代码,思路才是最重要的。

base64加密解密

1、介绍:base64是一种经常使用的加密方式,在一些项目中一些图片数据就是通过base64加密传输的,base64是一种防君子不防小人的加密方式,生产的编码可逆生成的编码都是ascii编码,python有一个专门的内置模块来实现base64算法,就是base64模块;
2、优点:速度快,ascii编码人眼不可理解;
3、编码非常长,且极易被破解,仅用于加密非关键信息;

base64模块用法

import base64image = '需要base64加密的图片数据'
# base64加密图片数据
image_base64 = base64.b64encode(image)
# 解密base64加密的图片
image_ = base64.b64decode(image_base64 )

案例一:下载京东登录验证码图片

辅助视频:

京东滑块图片和缺口图片XPATH定位分析

我们借助WEB自动化测试工具selenium来完成案例一,我们来开发测试用例,代码如下:
如果对selenium的使用不是很会的小伙伴,可以去看我们另外几篇基于selenium的爬虫博客,链接如下:
1、python selenium爬虫入门案例day01:中国图片库
2、python selenium爬虫入门案例day02:珠宝匠
3、python selenium爬虫入门案例:day03:Foodiesfeed

# coding:utf-8
import random
import base64
from selenium import webdriver
from selenium.webdriver.common.by import By# 京东网址
url = "https://www.jd.com/"
# 打开浏览器
driver = webdriver.Chrome()
# 显示休眠
driver.implicitly_wait(random.randint(3, 8))
# 访问京东官网
driver.get(url)
# 浏览器窗口最大化
driver.maximize_window()
# 定位超链接使用LINK_TEXT
driver.find_element(By.LINK_TEXT, '你好,请登录').click()
driver.find_element(By.LINK_TEXT, '账户登录').click()
# 定位输入框使用XPATH
driver.find_element(By.XPATH, '//*[@id="loginname"]').send_keys("13437246893")
driver.find_element(By.XPATH, '//*[@id="nloginpwd"]').send_keys("123456789lhz.")
driver.find_element(By.LINK_TEXT, '登    录').click()slider_ = driver.find_element(By.XPATH,'//*[@id="JDJRV-wrap-loginsubmit"]/div/div/div/div[1]/div[2]/div[2]/img')
verification_ = driver.find_element(By.XPATH,'//*[@id="JDJRV-wrap-loginsubmit"]/div/div/div/div[1]/div[2]/div[1]/img')
# get_attribute("获取标签属性值")
# 将data:image/png;base64,替换掉的原因是,这部分是图片头部,不是图片内容
# image指图片,png指图片格式,base64指加密算法,后面剩余部分才是加密后的图片数据
slider_base64 = slider_.get_attribute("src").replace("data:image/png;base64,", "")
# 将被base64加密过的图片解密
slider = base64.b64decode(slider_base64)
# 保存滑块图片
with open(file="slider.png", mode="wb") as f1:f1.write(slider)
# get_attribute("获取标签属性值")
verification_base64 = verification_.get_attribute("src").replace("data:image/png;base64,", "")
# 将被base64加密过的图片解密
verification = base64.b64decode(verification_base64)
# 保存缺口验证码图片
with open(file="verification.jpg", mode="wb") as f2:f2.write(verification)

视频讲解中,测试写出来的定位滑块和缺口图片的XPATH代码

这个xpath用法的原理就是:定位src属性值包含指定字符串的img标签
//img[contains(@src, 'CCZx8=')]
//img[contains(@src, 'ggllk')]

希望在此学习小伙伴能在评论区,留下自己的学习总结,让CSDN一起见证大家的进步

python 图片解密:base64相关推荐

  1. python图片转base64编码,与base64编码转图片

    在线工具可以使用:https://tool.chinaz.com/tools/imgtobase 使用python的话,需要安装: pip install Pillow 然后就可以使用下面的示例代码进 ...

  2. python 图片和base64互转的三种方式

    通过cv2进行转换 import cv2 import base64 import numpy as npdef img_to_base64(img_array):# 传入图片为RGB格式numpy矩 ...

  3. python 图片与base64相互转换

    import base64 import io from PIL import Image# 图片转换成base64 def image_to_base64(path):with open(path, ...

  4. 基于Python实现 图片的Base64加密与解密

    看到以iBV开头的乱码99.99%的情况下是图片的Baes64加密,例如 图片转Base64 import base64 # 对图片进行二进制B64加密 # 看到iBV 99%的情况下是png经过ba ...

  5. python图片加密、解密、识别图片

    python记录 import base64 from PIL import Image import pytesseract"""加密""" ...

  6. pythonの鉴黄之路(二)——图片转base64码

    上篇博客的YCbCr鉴黄有些过于浮夸 http://blog.csdn.net/sm9sun/article/details/53319959 于是经过慎重决定,我们打算采取调用外部成熟的接口来完成鉴 ...

  7. [转载] python将图片进行base64编码, 解码

    参考链接: 在Python中编码和解码Base64字符串 一.将图片进行base64编码 import base64 img_path = 'D:xxx/file/img/juwan.jpg' wit ...

  8. [转载] python程序所需的图片通过base64编码成字符串放在代码中

    参考链接: 在Python中编码和解码Base64字符串 问题背景 python代码打包成exe可执行文件.问题是这个python程序执行时需要显示一张图片,这就意味着打包成exe后,也需要在exe同 ...

  9. Python实现jpg/png/jpeg图片转base64编码文件

    python实现图片转base64编码文件 #Python实现jpg/png/jpeg图片转base64编码文件 # 打开图片文件(可以是jpg/png/JPEG格式)转为二进制文件 with ope ...

最新文章

  1. KNN算法的机器学习基础
  2. python装饰器原理-Python装饰器原理
  3. l启动进程 linux,《日子》. linux 查看进程启动路径
  4. Java—抽象类和接口的区别
  5. keep-alive使用笔记
  6. SpringFramework核心技术一(IOC:详细的依赖和配置)
  7. 【WEB基础】HTML CSS 基础入门(2)选取工具:VS2019安装使用
  8. java8实战:使用流收集数据之toList、joining、groupBy(多字段分组)
  9. 一、NPP/VIIRS夜间灯光数据校正一理论介绍
  10. Android 融云SDK-即时通讯IM(附源码)
  11. 关于使用开源版urule决策引擎优化性能和配置客户端集群同步生效的问题
  12. 2109-全国大学生电子设计竞赛-F-纸张数识别(内含arduino代码以及题解)
  13. OpenG 分化基础知识
  14. 中国英语学习论坛(3)
  15. 麦客达温德姆酒店品牌在中国首次亮相
  16. 关于linux网络编程的项目,linux网络编程入门
  17. 计算机锁屏之后QQ音乐停止播放了,MAC电脑如何在息屏状态下让QQ音乐能继续播放音乐...
  18. 一款非常nice的国产U盘启动制作工具——Ventoy
  19. 指令集与微架构 扫盲
  20. 做PPT设计半年赚8万,我是怎样做到的?

热门文章

  1. Lucas-Kanade光流法
  2. 中国儿童阅读发展研究报告
  3. MySQL 查询树表某个根节点的子树
  4. 形如:1/a 的分数称为单位分数。 可以把1分解为若干个互不相同的单位分数之和。
  5. win10笔记本怎么设置双屏显示?win10如何连接外置显示器的教程
  6. android timer时间间隔,间隔计时器IntervalTimer
  7. Qt Icon Resource 图标素材
  8. 软件测试工作的难点是什么?针对难点怎么做?
  9. uni-app中使用扩展组件失效并指导使用示例
  10. 如何才能成为成功的独立游戏开发者?