破解反爬案例:https://blog.csdn.net/qq_42988351/article/details/108797567

import numpy
import pytesseract
from fontTools.ttLib import TTFont
from PIL import Image, ImageDraw, ImageFontdef find_coding(special_coding, cn_code_list, font, count=12):"""返回其编码和值的对应关系"""im = Image.new("RGB", (1800, 1000), (255, 255, 255))# 就叫白色画板吧dr = ImageDraw.Draw(im)# 根据count分组:将列表切分成N份,以便于在图片上分行显示array_list = numpy.array_split(cn_code_list, count)for t in range(count):newList = [i.replace("uni", "\\u") for i in array_list[t]]text = (" ".join(newList)).encode('utf-8').decode('unicode_escape')dr.text((70, 70 * (t + 1)), text, font=font, fill="#000000")''''查看全部编码:把后面的代码注释就知道一些特殊的编码了1.打开百度字体编辑器:http://fontstore.baidu.com/static/editor/index.html2.选择woff字体预览3.得到对应的特殊编码print(text)'''# im.save("1.jpg")# im = Image.open("1.jpg")  # 可以将图片保存到本地,以便于手动打开图片查看# 识别中文chinese_str = pytesseract.image_to_string(im, lang="chi_sim")# OCR识别出来的字符串有空格换行符chinese_str = chinese_str.replace(" ", "").replace("\n", "")# 查到对应的中文单词匹配字典chinese_coding = dict(zip([i for i in cn_code_list], list(chinese_str)))# 返回对应编码的字典return dict(special_coding, **chinese_coding)def test():all_coding = {'!': '&', '#': '>', '$': 'c', '%': '~', '&': 'H', '(': 'q', ')': 'S', '*': '#', '+': '(', '/': '±','1': '2', '2': '1', '3': '6', '4': '9', '5': '8', '6': '3', '7': '4', '8': '7', '9': '5', '<': ')','=': 'R', '>': '/', '?': 'G', '@': 'h', 'A': 'u', 'B': 'd', 'C': 'v', 'D': 'Q', 'E': 'i', 'F': 'B','G': '&', 'H': 'n', 'I': 'p', 'J': 'I', 'K': 'L', 'L': '%', 'M': '@', 'N': 'Y', 'O': '_', 'P': '^','Q': 'l', 'R': 'a', 'S': 'P', 'T': 't', 'U': 'U', 'V': 'A', 'W': 'M', 'X': 'D', 'Y': 'z', 'Z': 'w','^': 'E', '_': 'g', 'a': 'r', 'b': '=', 'c': 'j', 'd': 'V', 'e': 'N', 'f': 'T', 'g': 'C', 'h': '!','i': 's', 'j': '|', 'k': 'F', 'l': 'b', 'm': 'y', 'n': '?', 'o': 'f', 'p': 'Z', 'q': '<', 'r': 'o','s': 'm', 't': 'W', 'u': 'O', 'v': 'J', 'w': 'e', 'x': 'k', 'y': 'K', 'z': '+', '|': 'x', '~': '*','±': 'X', '〇': '院', '一': '北', '丁': '一', '七': '授', '万': '括', '三': '并', '下': '费', '不': '步', '与': '阳','专': '种', '丙': '行', '业': 'O', '东': '书', '个': '五', '中': '三', '为': '合', '主': '商', '乙': '建', '九': '询','也': '位', '乡': '订', '书': '需', '予': '须', '事': '来', '二': '机', '云': '环', '互': '评', '五': '重', '产': '集','京': '事', '人': '经', '亿': '南', '从': '快', '件': '首', '任': '名', '份': '物', '企': '值', '优': '字', '会': '格','位': '百', '体': '镇', '保': '从', '信': '月', '值': '目', '元': '导', '先': '效', '光': '才', '免': '罪', '全': '准','八': '精', '公': '乡', '六': '展', '册': '企', '再': '贴', '准': '变', '列': '理', '刘': '厂', '创': '东', '利': '王','别': '易', '制': '纸', '务': '辖', '助': '州', '励': '围', '包': '据', '北': '升', '区': '包', '十': '点', '千': '街','升': '息', '华': '证', '单': '先', '南': '路', '厂': '限', '厅': '水', '原': '份', '县': '量', '及': '民', '发': '子','受': '间', '变': '受', '号': '予', '司': '活', '合': '请', '名': '互', '员': '大', '商': '地', '四': '已', '因': '查','园': '会', '围': '拆', '国': '计', '图': '的', '地': '改', '圳': '技', '型': '施', '城': '列', '域': '全', '基': '阅','处': '政', '备': '安', '复': '助', '大': '公', '天': '或', '奖': '单', '委': '产', '子': '秀', '字': '京', '学': '圳','安': '河', '家': '丙', '导': '研', '小': '规', '局': '明', '展': '类', '属': '务', '山': '基', '州': '所', '工': '有','已': '革', '币': '码', '市': '西', '年': '获', '并': '年', '广': '督', '度': '火', '座': '运', '建': '华', '张': '科','当': '等', '得': '李', '微': '验', '心': '造', '快': '件', '总': '高', '息': '除', '或': '维', '所': '程', '才': '知','扶': '设', '批': '型', '技': '广', '报': '收', '拆': '因', '括': '股', '持': '专', '据': '术', '授': '符', '措': '号','提': '得', '收': '额', '改': '励', '政': '海', '效': '门', '数': '部', '文': '学', '新': '区', '施': '园', '日': '给','时': '过', '明': '第', '易': '监', '更': '当', '月': '厅', '有': '究', '服': '济', '未': '错', '术': '持', '机': '服','李': '微', '条': '域', '来': '扶', '查': '龙', '标': '创', '栋': '注', '格': '小', '步': '备', '民': '通', '水': '能','河': '个', '法': '条', '注': '刘', '活': '处', '济': '座', '海': '未', '深': '原', '湖': '四', '源': '日', '火': '册','点': '二', '物': '为', '犯': '电', '王': '时', '环': '体', '理': '张', '甲': '云', '申': '复', '电': '度', '百': '质','的': '山', '监': '任', '目': '管', '省': '批', '督': '下', '知': '标', '码': '金', '研': '还', '秀': '员', '种': '优','科': '提', '积': '深', '称': '及', '程': '配', '究': '与', '立': '范', '符': '栋', '第': '业', '等': '进', '策': '心','算': '国', '管': '县', '类': '源', '精': '项', '纸': '乙', '经': '新', '给': '光', '维': '犯', '网': '市', '罪': '人','者': '申', '联': '委', '股': '报', '能': '丁', '自': '补', '范': '甲', '获': '发', '行': '者', '街': '道', '补': '自','西': '九', '规': '元', '计': '十', '订': '立', '设': '工', '证': '别', '评': '网', '询': '七', '请': '算', '质': '主','贴': '总', '贸': '湖', '费': '家', '资': '奖', '路': '数', '辖': '干', '过': '更', '运': '法', '还': '违', '进': '万','违': '文', '通': '再', '造': '币', '道': '称', '部': '措', '配': '资', '重': '图', '量': '六', '金': '保', '错': '利','镇': '城', '门': '属', '间': '中', '阅': '亿', '阳': '联', '限': '积', '院': '局', '除': '贸', '集': '信', '需': '也','革': '策', '项': '不', '须': '制', '额': '司', '首': '免', '验': '省', '高': '天', '龙': '八'}chace_str = '者合册第应具步以督法快:'result = ''.join([all_coding.get(each, each) for each in chace_str]) if chace_str else ''print(f'转换前:({chace_str}), 转换后:({result})')if __name__ == '__main__':fontPath = r'C:\Users\lenovo\Desktop\ccw.ttf'font_file = TTFont(fontPath)# 设置字体大小font = ImageFont.truetype(fontPath, 45)# 1 全部编码codeList = font_file.getGlyphOrder()# 1.1 中文编码cn_code_list = [i for i in codeList if 'uni' in i]# 1.2 其他一些编码对应字典值special_coding = {'.notdef': ' ', 'five': '5', 'nine': '9', 'seven': '7', 'eight': '8', 'three': '3', 'four': '4','ampersand': '&', 'six': '6', 'two': '1', 'plusminus': '±', 'one.001': '2', 'asterisk': '*','asciitilde': '~', 'greater': '>', 'numbersign': '#', 'parenleft': '(', 'parenright': ')','slash': '/', 'equal': '=', 'dollar': '&', 'exclam': '!', 'bar': '|', 'percent': '%', 'at': '@','question': '?', 'underscore': '_', 'asciicircum': '^', 'less': '<', 'plus': '+'}# 1.3 查找编码的对应字典值special_and_chinese_coding = find_coding(special_coding, cn_code_list, font)# print(special_and_chinese_coding)# 1.4 全部编码集all_coding = {}sxs = font_file['cmap'].getBestCmap().items()for k, v in sxs:print(f'map(code="{k}" name="{v}") | key:{chr(k)} Value:{special_and_chinese_coding.get(v, v)}')all_coding[chr(k)] = special_and_chinese_coding.get(v, v)# print(all_coding)# test() # 测试

输出:

map(code="35774" name="uni8BBE") | key:设 Value:工
map(code="35777" name="uni8BC1") | key:证 Value:别
map(code="35780" name="uni8BC4") | key:评 Value:网
map(code="35810" name="uni8BE2") | key:询 Value:七
map(code="35831" name="uni8BF7") | key:请 Value:算
map(code="36136" name="uni8D28") | key:质 Value:主
map(code="36148" name="uni8D34") | key:贴 Value:总
map(code="36152" name="uni8D38") | key:贸 Value:湖
map(code="36153" name="uni8D39") | key:费 Value:家
map(code="36164" name="uni8D44") | key:资 Value:奖
map(code="36335" name="uni8DEF") | key:路 Value:数
map(code="36758" name="uni8F96") | key:辖 Value:干
map(code="36807" name="uni8FC7") | key:过 Value:更
map(code="36816" name="uni8FD0") | key:运 Value:法
map(code="36824" name="uni8FD8") | key:还 Value:违
map(code="36827" name="uni8FDB") | key:进 Value:万
map(code="36829" name="uni8FDD") | key:违 Value:文
map(code="36890" name="uni901A") | key:通 Value:再
map(code="36896" name="uni9020") | key:造 Value:币
map(code="36947" name="uni9053") | key:道 Value:称
map(code="37096" name="uni90E8") | key:部 Value:措
map(code="37197" name="uni914D") | key:配 Value:资
map(code="37325" name="uni91CD") | key:重 Value:图
map(code="37327" name="uni91CF") | key:量 Value:六
map(code="37329" name="uni91D1") | key:金 Value:保
map(code="38169" name="uni9519") | key:错 Value:利
map(code="38215" name="uni9547") | key:镇 Value:城
map(code="38376" name="uni95E8") | key:门 Value:属
map(code="38388" name="uni95F4") | key:间 Value:中
map(code="38405" name="uni9605") | key:阅 Value:亿
map(code="38451" name="uni9633") | key:阳 Value:联
map(code="38480" name="uni9650") | key:限 Value:积
map(code="38498" name="uni9662") | key:院 Value:局
map(code="38500" name="uni9664") | key:除 Value:贸
map(code="38598" name="uni96C6") | key:集 Value:信
map(code="38656" name="uni9700") | key:需 Value:也
map(code="38761" name="uni9769") | key:革 Value:策
map(code="39033" name="uni9879") | key:项 Value:不
map(code="39035" name="uni987B") | key:须 Value:制
map(code="39069" name="uni989D") | key:额 Value:司
map(code="39318" name="uni9996") | key:首 Value:免
map(code="39564" name="uni9A8C") | key:验 Value:省
map(code="39640" name="uni9AD8") | key:高 Value:天
map(code="40857" name="uni9F99") | key:龙 Value:八Process finished with exit code 0

pytesseract 测试获取查策网编码字体相关推荐

  1. 应用计算机测定线性电阻电路图和实物图,中国大学MOOC电子线路设计、测试与实验二网课答案...

    中国大学MOOC电子线路设计.测试与实验二网课答案 字体大小:大 | 中 | 小 2020-04-26 19:57 阅读(1017) 分类: 中国大学MOOC电子线路设计.测试与实验二网课答案 打开右 ...

  2. 渗透测试入门5之内网信息搜集

    渗透测试入门5之内网信息搜集 本机信息搜集 1.用户列表 windows用户列表 分析邮件用户,内网[域]邮件用户,通常就是内网[域]用户 2.进程列表 分析杀毒软件/安全监控工具等 邮件客户端 VP ...

  3. 型人格 disc测试_什么是孤独型人格,如何测试筛查孤独型人格?

    一. 什么是孤独型人格 孤独型人格是一种人格异常.孤独型人格非常的敏感,内心极度紧张矛盾,极易产生羞愧和耻辱感.有些妄自尊大.桀骜不驯.性格冷漠孤僻,没有稳定的社会关系,很少有朋友,但是对他人的评价又 ...

  4. iOS 获取手机外网IP地址的成功与失败

    一.获取手机外网IP(公网IP) 网上找了很久获取外网IP的方法,很多访问网址已经不能用了,能用的主要有2个,但是获取到的IP地址不同,下面详细介绍. 首推方法1:此方法采用的淘宝网址,获取的到IP与 ...

  5. 传奇网页服务器测试服,测试传奇游戏服务器网速的一些方法

    测试传奇游戏服务器网速的一些方法 本文出处:网游动力作者:本站发布时间:2018-08-20阅读次数: 前几天站长跟一些开传奇sf朋友们聊到服务器,说了配置.防护还有是速度等方面的内容,如果查看服务器 ...

  6. linux命令获取本机外网公网ip地址,java程序获取本机外网公网ip地址 代码

    linux命令获取本机外网ip地址 1 直接返回ip 最快 稳定 curl ns1.dnspod.net:6666 curl whatismyip.akamai.com curl icanhazip. ...

  7. 鲁大师html5测试网站,鲁大师测网速(鲁大师网速测试在哪里)

    鲁大师主要测的是硬件性能,你可以用360安全卫士去测网速,打开安全卫士,右下角就有看待测速器,点那个. 目前鲁大师没有测试网速的功能,但是360安全卫士中有测试网速功能(鲁大师现在是360旗下的产品. ...

  8. Java爬虫 获取中国天气网7日天气预报

    Java爬虫 获取中国天气网7日天气预报 前言 工具准备 爬取数据 获取日期和星期 获取天气描述 获取温度范围 获取风向及风力 完整代码 引用 前言 项目需要获取7日天气预报,免费好用的接口寻觅不到, ...

  9. java 获取已有字体,java获取本机全部可用字体

    java获取本机所有可用字体 //just for fun,那个28个字母的函数满满都是恶心 import java.awt.GraphicsEnvironment ; class Tester { ...

最新文章

  1. NS3_Tutorial 中文版: 第一章 简介 第二章 资源
  2. p点到(a,b)点两所在直线的垂点坐标及p点是否在(a,b)两点所在直线上
  3. python中如何调用java_在Python程序中调用Java代码的实现
  4. Kubernetes(五) - Service
  5. Qt 关于定时器实用的总结
  6. 屯题 (bestcoder #62~#75)
  7. myelcipse和maven搭建项目
  8. “ 我亦想望,如池鱼悠悠 ... “
  9. Git 使用,命令说明
  10. Python编程从入门到实践~文件写入
  11. java freemarker_Java: FreeMarker的配置和使用
  12. 中文信息处理(六)—— 神经语言模型与词表示(word2vec)
  13. java——base64 加密和解密
  14. 毛星云opencv第二章总结
  15. 合并两个有序数组——C语言
  16. LSI Logic 1068 SAS 磁盘阵列卡配置教程
  17. 发展农村数字普惠金融的问题及对策分析
  18. dos命令之 assoc 用法详解
  19. 红米k30s至尊纪念版参数配置
  20. 上半年、你学到了什么?

热门文章

  1. java smack 例子_关于JAVA利用smack连接openfire的jar依赖问题
  2. 虚拟机由于硬盘存储空间过满导致启动异常+虚拟机扩容
  3. Qt QNetworkAccessManager 下载url
  4. Oracle 错误总结及问题解决 OR
  5. 如何关闭iPhone浏览器自动将数字识别为电话号码
  6. Android的布局管理--表格布局
  7. 一行代码搞定Android弧形卫星动画菜单(附Demo)
  8. 达芬奇机器人变身‘模仿达人’,通过看视频模仿手术缝合、穿针、打结等动作...
  9. 阿里云服务器配置(一)基础
  10. Socket通信流程和套接字作用