【笔记】python自学笔记(爬虫篇)——base64
前言:根据国际惯例,前言就是废话,但今天不一样,我在这里祝吾爱破解论坛的各位兄弟姐妹在新的一年里:一帆风顺事如意,二度来财财源广,三阳开泰迎百福,四季平安纳千祥,五福临门多瑞气,六六大顺通四方,七星高照保平安,八面玲珑官运上,九九高寿自得乐,十全十美聚一堂。https://static.52pojie.cn/static/image/hrline/1.gif
一.base64了解:base64编码是将二进制字节流编码为可打印的64个字符。有些网络传输并不支持二进制编码的字节流的传输,若要解决此问题,就可以用base64编码。另外,base64可以作为简单的加密工具。
https://static.52pojie.cn/static/image/hrline/1.gif
二.base64原理:众所周知,传统的一个字节占8位,base64是将原先的二进制字节流以6位为分割,然后在经过base64字符编码对照表,编码为可打印的字符串。
https://static.52pojie.cn/static/image/hrline/1.gif
三.base64优缺点:
优点:速度快,ascii字符,肉眼不可理解
缺点:编码比较长,非常容易被破解,仅适用于加密非关键信息的场合
https://static.52pojie.cn/static/image/hrline/1.gif
四.base64字符编码对照表
我来给大家举个栗子:
第一个字符为:0001 1110,10进制为30,对应base64字符编码对照表:‘e’
第二个字符为:0010 0000,10进制为32,对应base64字符编码对照表:‘g’
base64编码的一个字节6位,传统的一个字节8位,最小公倍数为24。那么base64编码最小单位即为24/6=4个字符
由于‘z’后面bit位都是0,base64约定以‘=’代替
https://static.52pojie.cn/static/image/hrline/1.gif
五.图片的base64编码
Python中内置了base64模块,我们可以直接使用import base64
接下来我们对一张base64加密的图片进行爬取,然后解码下载
1.需要下载的图片:
2.我们抓取一下数据看看:按下键盘上的f12,选在NetWare选项卡中,然后刷新网页
3.接下来就是将这张图的数据包找到,这里有点奇怪,我刚刚抓包的时候都能抓到那张图,我还写了代码测试,现在抓就没有,算了,我随便找一张base64的图片演示一下
4.然后我们看看它的Headers,很明显呀,它的requests url中有很明显的base64
5.接下来就是写代码了,我直接上代码,我相信大家看一眼就能理解的
# base64编码后的二进制图片文件
a='iVBORw0KGgoAAAANSUhEUgAAADUAAAAuCAMAAAC/KaEaAAAAtFBMVEUAAAD/NTX/Njb/Njb/VVX/Njb/NTX/NTX/Njb/Njb/Nzf/NTX/OTn/Nzf/NTX/////QED/ubn/ODj/mJj/Xl7/RET/+Pj/ycn/1dX/h4f//Pz/2dn/b2//XFz/09P/wMD/kpL/Ozv/8/P/7+//3d3/zs7/vLz/s7P/qan/oaH/gYH/enr/a2v/Z2f/UVH/6en/4+P/fn7/c3P/YmL/rKz/m5v/S0v/Rkb/xsb/lZX/V1f/SEg1K3F9AAAADnRSTlMA5ohgBmj465Z7Sj42JQh+fn0AAAHDSURBVEjH7dbpbptAFIbh2E3T/bzDYChgYxvv+x47y/3fVxkSiiDxQqtWipTvhzkj8fz5OJLn6rpakQtTqV5fPacqJVJNVaWMqqRKSuVdlVJa64vVzyAIk8GB5uUKav9DNTzP60DP87ZDawBdy2RzRk1I0+jyO/Y/UVop1Ye5UjoMG9AMQztWZdqowVBkXVAfjys9185hA3amMnZM9TuoVice1iJTuJU8Kyi99Ud9FxMfk63IBsaSz4e8krS4+vjRSpoUmcFIiiyvWhC4MDfzLeBO5QGGevRYYDk182vRc4fRCpN2BH2Fu8izb0eab8OyRTyv6CzAyb3z+UWH9UTNXNhoC0tGsMPNvfKl0Pxg1YNASSNGrfg8diQMTD2S5abYodjEuUuqaCp5yji/ijdfX3zlba/XvN/Hg99XkmY6GGeHT99f2431IZujyPherokfr+3hHLctzmTnx4V4wb2YMu7O7nwdprIAT8zvSmTfAfuMsp/qWsJBxEu2ZApBeFI1gFn8tGCSfOhhfBhCXZ9SA9iZpw8DkT24SsTpslycUtKuR+bxsLQmZplbbdOfb6kzbeg39Z/yxlW5W8pf3Yj+7Pb1C5l+h9Q5syfCAAAAAElFTkSuQmCC'
import base64
# base64解码(解成二进制串)
decode_jpg = base64.b64decode(a)
# print(decode_jpg)
# 写入jpg文件
with open('./new.jpg', 'wb') as f:
f.write(decode_jpg)
6.注意,我们解密的数据只有我用红线标注的这部分,开头一般都是不变的,结尾就是直到这一段的末尾,无论这个多长,你都要复制过来
7.base64是最简单的一种加密方式,但也是我们在爬虫过程中经常能遇到的一种加密方法,所以在这里给大家介绍一下
https://static.52pojie.cn/static/image/hrline/1.gif
后言:其实本来今天这一节的内容是疫情数据的爬取,但是因为家里来客人了,客人也刚走不久,我就顺便给大家浅谈一下base64编码,总体上这一节有水贴的成分,哈哈
以上内容一部分知识点来源网络,感谢你的观看 大年初二还在刻苦学习 真是值得学习啊。 璐璐诺 发表于 2021-2-13 22:31
大年初二还在刻苦学习 真是值得学习啊。
害,闲着没事 谢谢分享,点赞。收藏起来 感谢分享 宽宽天下 发表于 2021-2-13 23:33
感谢分享
也感谢你的观看,新年快乐 cjc3528 发表于 2021-2-13 22:37
非常好的教程,谢谢分享
谢谢你的支持,新年快乐 qunamr88 发表于 2021-2-13 22:44
谢谢分享,点赞。收藏起来
也感谢你的观看,新年快乐 新年快乐 ,加油学习。 xspapdc 发表于 2021-2-14 00:23
新年快乐 ,加油学习。
共同努力,新年快乐
页:
[1]
2