最近呢,知乎发表了一个报告说,安全防护系统全面升级了(是小管家说的)。
现在内容中的二维码会被自动替换为相应的链接,并缀以“(二维码自动识别)”字样。
今天就来看,如何用Python自动识别二维码。
01. 编码
首先要熟悉一套理论:什么是二维码?
条形码我们都见过,这就是一种“一维码”。竖直方向上,条码是均匀的,长短也不影响,信息只在水平方向上存储。
二维码的信息则在整个平面上存储,当下常见的二维码叫QR码(Quick Response Code)。实际上广义的二维码有很多形式,比如以前机器编程用的打孔带,还有考试的答题卡也是一个原理。
二维码的一大优势在于容错率高,即使遮挡一部分,也不影响解码。这就是为什么很多QR code会在中间放一个图标,本质上来说,这个图标就相当于给二维码又打了个码。
如果把太极图看作二进制,那么这也是个二维码,白的是0,黑的是1。
QR code存储信息的基本套路就跟“阴阳”类似,白0黑1。特别显眼的那几个方块和虚线,则是辅助定位用的。
>>>这里本来有个二维码图样,展示各个区域的作用,但是被自动识别了。<<<
Mr. Watson, come here - I want to see you. (二维码自动识别)
边边角角上的特定区域都按照标准存储固定的信息,就像一张卷子上不可能全是题,总有写班级姓名的地方。