为持续加深对律法的学习,我们需要再来收集一些数据。
这个网站的各种反爬措施还挺多的,接口加密啊,验证码啊(每个页面都有),无限debugger啊,什么的,还是挺烦的,如果不要求效率的话可以考虑用selenium来过掉,这里重点来解决一下字体加密的问题。
首先来看下字体加密什么样子。
如图,为律所详情页的截图,可以看到啊,这个标签下的字体为加密字体,这个网站他大多数数据信息都会像这样来做一个加密。
首先来说下解决的方法。
刷新页面,勾选字体栏即可看到返回的页面,直接下载下来即可。
下载字体文件保存为本地font.ttf,然后解析为font.xml。
可以看到文件里是一些映射关系,和一些字形的信息,如果是简单的数字加密或是很少的字体加密的话,这一步直接拿到映射关系就可以用了,但是这个网站他每次的字体文件都不一样,所以这种简单的映射关系不可用。
上一步我们拿到了字形信息,这里来生成提供一个通用的方法来做映射关系。
font.ttf文件中通过unicode码来标记对应的字体的字形信息,我们也可以用同样的方式,获取加密字体对应的原字体的字形信息(固定不变的),以此为key来设计映射关系。
这里定义了一个全局变量font_map来存储映射关系,通过PIL的ImageFont对象来将字体的字形信息复现出来,然后通过ocr技术得到字的原型,完成解密。将解密过的字存入font_map,随着收录的字越来越多,解析效率会越来越高。
THE END