Python复健练习:爬取58同城房产月租及户型加密字体

Request URL: https://maoyan.com/
Python复健练习:爬取58同城房产月租及户型加密字体_第1张图片
在这里插入图片描述
Python复健练习:爬取58同城房产月租及户型加密字体_第2张图片
任务:获取正确的信息
[考虑网页渲染性能,通常网页开发者会把自定义的文体编码成base64的方式]
在这里插入图片描述
考虑网页渲染性能,通常网页开发者会把自定义的文体编码成base64的方式
[若没有使用base64则可能把字体文件放在了服务器上,然后前端通过@font-face中的url进行加载,如上图]
Python复健练习:爬取58同城房产月租及户型加密字体_第3张图片Python复健练习:爬取58同城房产月租及户型加密字体_第4张图片
本文讨论使用base64的常见情况(58同城房产)
Request URL: https://heyuan.58.com/chuzu/?PGTID=0d100000-028e-35df-5fbf-7d9bbdf05780&ClickID=2
Python复健练习:爬取58同城房产月租及户型加密字体_第5张图片
Python复健练习:爬取58同城房产月租及户型加密字体_第6张图片
1.寻找自定义字体
Python复健练习:爬取58同城房产月租及户型加密字体_第7张图片
2.解析加密字体
Python复健练习:爬取58同城房产月租及户型加密字体_第8张图片
[此情况为写入的自定义字体中存在非法字符]
正确提取效果
Python复健练习:爬取58同城房产月租及户型加密字体_第9张图片
[注:应使用二进制写入文件且需要单引号包括]
展示在网页之中的是code[code与name的对应关系可能会随机变化]
我们可以通过name找到对应的font shape(不变)再逆推出code与font shape的对应关系,eg:

code:
在这里插入图片描述
name:
在这里插入图片描述
font shape:
Python复健练习:爬取58同城房产月租及户型加密字体_第10张图片
[初学者建议使用 fontTools库在python中读取后缀为.ttf的文件,然后将字体保存于xml文件,理解font的内部结构]
在这里插入图片描述
Python复健练习:爬取58同城房产月租及户型加密字体_第11张图片
若出现此报错则说明解析器解析错误,需自行寻找规律,方法如下
Python复健练习:爬取58同城房产月租及户型加密字体_第12张图片
若出现此报错则说明解析器解析错误,需自行寻找规律,方法如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以6的name为glyph00007
在这里插入图片描述
操作如下:
Python复健练习:爬取58同城房产月租及户型加密字体_第13张图片
3.反向解析
Python复健练习:爬取58同城房产月租及户型加密字体_第14张图片
[最后再对html进行常规操作即可爬取加密信息]
附代码链接:https://paste.ubuntu.com/p/rnbvYRD36w/(含详细注解)

你可能感兴趣的:(Python复健练习:爬取58同城房产月租及户型加密字体)