字体反爬之自动化通过字体文件生成映射字典
创始人
2025-01-15 03:33:38
0

1、首先找到以.ttf结尾的字体文件,下载下来,以我的字体文件sfont.ttf为例

sont.ttf下载地址https://download.csdn.net/download/lingyingdon/89534953

目前只测试了.ttf文件。如果想使用woff字体文件,请自行测试

2、下载分割字体文件的软件fontforge, 安装后将安装路径添加到环境变量中去,该软件结合python脚本分割字体文件为单个字体图片及其对应的编码作为文件名

  • 官网地址如下

    https://fontforge.org/en-US/

  • python脚本如下split_font.py

    import os import argparse import sys  import fontforge   def main(font_path, folder):     # 字体文件分割脚本,需要配合fontforge使用     # font_path = r"F:\download\sfont.ttf"  # 字体文件路径     # folder = "img"  # 字体文件分割后保存的目录     F = fontforge.open(font_path)     for name in F:         filename = name + ".png"         export_path = os.path.join(folder, filename)         F[name].export(export_path)          if __name__ == '__main__':      parser = argparse.ArgumentParser(description='字体分割.....')     parser.add_argument('-f', '--file_path', type=str, help='字体文件路径,字体文件为.ttf结尾')     parser.add_argument('-d', '--dir', type=str, help='输出字体文件目录')      args = parser.parse_args()     if args.file_path and args.dir:         main(args.file_path, args.dir)     else:         print("请输入字体文件路径和输出字体文件目录")         sys.exit(1) 
  • 通过执行以下命令脚本分割字体文件(前提是将fontforge添加到环境变量)

    fontforge split_font.py

  • 处理后的图片如下

    在这里插入图片描述

3、由于分割后的字体文件相对比较模糊,通过使用pillow模块扩张字体图片大小来增加图片的清晰度

def strength_pic(pic_path):     """     图片增强     猜想是,在进行卷积处理的时候,选择的算子在边界处理上更倾向于重新计算,而实际上我们的边界是不需要计算的,所以这里手动将边界扩张     """      old_im = Image.open(pic_path)     old_size = old_im.size      new_size = (300, 300)     new_im = Image.new("RGB", new_size, color='white')  ## luckily, this is already black!     new_im.paste(old_im, (int((new_size[0] - old_size[0]) / 2),                           int((new_size[1] - old_size[1]) / 2)))      new_im.save(pic_path.replace('img', 'img_output')) 
  • 经过处理后的图片如下

    在这里插入图片描述

4、使用ddddocr模块来识别字体图片

def ocr_img(ocr, file_path):     """     使用ddddocr模块识别     :param ocr:  ddddocr实例化对象     :param file_path:  图片文件路径     :return:  识别结果     """     image = open(file_path, "rb").read()     result = ocr.classification(image)     return result 

5、最后来看一下运行结果,全自动执行,不需要在一个一个整理字体字典了(我这里在代码中用&#x对uni进行了替换)

在这里插入图片描述

想要完整代码的联系fangyingdon@163.com

相关内容

热门资讯

绝活儿辅助!广西老友玩老是输怎... 绝活儿辅助!广西老友玩老是输怎么办(辅助挂)都是真的有辅助app(讲解有挂)在进入广西老友玩老是输怎...
法门辅助!福建13水插件(辅助... 法门辅助!福建13水插件(辅助挂)一贯是有辅助技巧(有挂技术)1、许多玩家不知道福建13水插件辅助怎...
办法辅助!潮友会app下载官方... 办法辅助!潮友会app下载官方辅助器(辅助挂)真是真的是有辅助app(有挂教程)该软件可以轻松地帮助...
妙招辅助!邯郸胡乐挂辅助(辅助... 妙招辅助!邯郸胡乐挂辅助(辅助挂)好像存在有辅助插件(有挂方略)1、上手简单,内置详细流程视频教学,...
教程书辅助!乐酷辅助(辅助挂)... 教程书辅助!乐酷辅助(辅助挂)其实存在有辅助脚本(有挂细节)乐酷辅助能透视中分为三种模型:乐酷辅助模...
学习辅助!决战卡五星辅助(辅助... 学习辅助!决战卡五星辅助(辅助挂)本来真的是有辅助软件(有人有挂)学习辅助!决战卡五星辅助(辅助挂)...
绝活辅助!边锋嘉兴麻将辅助器(... 绝活辅助!边锋嘉兴麻将辅助器(辅助挂)真是真的有辅助神器(新版有挂)1、边锋嘉兴麻将辅助器公共底牌简...
举措辅助!枫叶辅助器(辅助挂)... 举措辅助!枫叶辅助器(辅助挂)本来存在有辅助技巧(竟然有挂)1、下载好枫叶辅助器正确养号方法之后点击...
讲义辅助!点我达辅助(辅助挂)... 讲义辅助!点我达辅助(辅助挂)一直存在有辅助技巧(有人有挂)1、点我达辅助辅助器安装包、点我达辅助辅...
模块辅助!威信茶馆有挂的吗(辅... 模块辅助!威信茶馆有挂的吗(辅助挂)一直真的是有辅助脚本(揭秘有挂)1、玩家可以在威信茶馆有挂的吗线...