起点字体
代码:
import re import requests import time from fontTools.ttLib import TTFont from fake_useragent import UserAgent headers = {"UserAgent": UserAgent().random} # 请求的目标网址 url = "https://book.qidian.com/info/1019275790" # 延时等待一秒 time.sleep(1) # 请求目标网页 html = requests.get(url, headers=headers).content.decode() # 保存网页 with open('网页代码.html', 'w', encoding='utf-8') as f: f.write(html) # 传值 html_content = html # 匹配网页中的字体文件路径 font_url = re.findall(r"src: url\('(.*?)'\)", html)[1] print(font_url) # 请求字体文件地址 font_resp = requests.get(font_url) # 保存字体文件 with open('字体文件.woff', 'wb') as f: f.write(font_resp.content) # TTFont打开字体文件 font = TTFont("字体文件.woff") # 将字体文件保存为可读的xml文件 font.saveXML('font.xml') # 找字体的映射关系 font_map = font['cmap'].getBestCmap() print(font_map) # 找到字体映射关系,并手动修改后的字体映射 d = {'three': 3, 'eight': 8, 'four': 4, 'two': 2, 'zero': 0, 'seven': 7, 'six': 6, 'five': 5, 'one': 1, 'period': '.', 'nine': 9} # 将字体的映射关系重新修改 for key in font_map: font_map[key] = d[font_map[key]] print(font_map) # 将网页代码中的加密字体替换为数字 for key in font_map: html_content = html_content.replace('&#' + str(key) + ';', str(font_map[key])) # 保存修改后的网页代码 with open('after.html', 'w', encoding='utf-8') as f: f.write(html_content)
原文链接:https://blog.csdn.net/qq_46292926/article/details/105326362
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
2019-03-13 RabbitMq
2019-03-13 windows10环境下的RabbitMQ安装步骤(图文)
2019-03-13 基于scrapy的一些实例