推荐
关注
TOP
Message

JS逆向实战13.5——某小说网站 小说字数 和月票字体加密

本文地址: https://www.cnblogs.com/zichliang/p/17408064.html

本网站不算严格意义的逆向,只是爬虫的一个小手段。

声明

本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

目标网站

68747470733a2f2f7777772e71696469616e2e636f6d2f616c6c2f

爬取目标


获取如上图所示的数字 以及标题简介 小说名 和小说地址 以及作者名和作者URl

网站分析

这个网站我们只爬取首页,也不对详情页做分析。

所以我们只需要分析这个链接
得到其中的对应链关系 即可得到数字
字体TTF加密流程分为

  1. 下载相应的包
  2. 对包进行解析获取其中的映射关系(当然其实这个有逻辑的可以解密解出来 太复杂了我就不说了)
  3. 获取数字

对应的月票也是同理

解决方法

首先我们通过FontCreator 上文的字体文件。

fontCreator官网: https://fontcreator.com.cn/ 点击免费下载 下载即可 有免费试用权限


如图所示映射关系如上图
然后我们通过代码把两者对应起来。
下面展示部分代码

def font_encode(self, encrypted_number, font_obj):
"""
:param encrypted_number: 加密后的数字
:param font_obj: fontTools对象
:return:
"""
# 获取映射表
mapping_dict = font_obj.getBestCmap()
# print("字体加密映射表", mapping_dict)
for index, i in enumerate(encrypted_number):
new_font_list = re.findall(r'\d+', i) # 去掉特殊符号 &# &# ;
encrypted_number[index] = new_font_list
dict_e_a = {
"one": '1', "two": '2',
"three": '3', "four": '4',
"five": "5", "six": '6',
"seven": "7", "eight": '8',
"nine": '9',
"zero": '0', 'period': "."
}
for i in mapping_dict:
# 遍历dict_e_a
# print(i)
for j in dict_e_a:
# dict_的值等于dict_e_a的键
if mapping_dict[i] == j:
mapping_dict[i] = dict_e_a[j]
# print("替换成数字后的关系映射表", mapping_dict)
return mapping_dict

然后通过匹配response去掉特殊符号的值 和 改成阿拉伯数字后的关系映射表,把密文改成明文 100196 =》 3


这样就能得到完整的数字。

爬取成功!!!

本文地址: https://www.cnblogs.com/zichliang/p/17408064.html

posted @   始識  阅读(1294)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示