起点字体

摘要:
代码:importReimportRequestsimportTime来自fontTools。ttLibimportTTFontfrom_UseragentimportUserAgentades={“UserAgent”:UserAgent().random}#请求的目标URL=“https://book.qidian.com/info/1019275790“#延迟等待1秒t

代码:

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

免责声明:文章转载自《起点字体》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CentOS 7上的程序管理:rpm、yum和源码编译安装bzoj1013题解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows使用ssh命令指定.pem文件出现: Load key "key.pem": Permission denied 和 Permissions for 'key.pem' are too open 问题

参考转载与: https://blog.csdn.net/engineer520/article/details/82714696?utm_source=blogkpcl7 在Windows上可以使用ssh命令通过指定.pem的方式进行远程登陆, 具体命令如下 ################################################...

网页引入特殊字体的几种方案

网页使用的字体需要受制于操作系统,如果用户的操作系统没有安装某个字体,网页则会退而求其次的使用系统自带的字体。 因此我们并不能随便使用一些好看的字体,只能选用一些安全字体。比如:Helvetica,Arial,宋体,微软雅黑,如果能在网页上使用好看的字体就好了~ 可是引入字体对于英文来说,是合适的,因为字体文件本身不大。但是对于中文字体,一个字体文件就好几...

Redis删除特定前缀key的优雅实现

    还在用keys命令模糊匹配删除数据吗?这就是一颗随时爆炸的炸弹! Redis中没有批量删除特定前缀key的指令,但我们往往需要根据前缀来删除,那么究竟该怎么做呢?可能你一通搜索后会得到下边的答案 redis-cli --raw keys "ops-coffee-*" | xargs redis-cli del 直接在linux下通过redis的k...

Python PIL ImageDraw 和ImageFont模块学习

ImageDraw  新建一个空白图片为本文作示例,新建空白文件的方法 见Image模块,Image.new: import Image blank = Image.new("RGB",[1024,768],"white")       1、模块引入 import ImageDraw 2、ImageDraw.Draw(image)       ...

生成 git 密钥 步骤

http://blog.csdn.net/wfdtxz/article/details/8678982 git使用https协议,每次pull, push都要输入密码,相当的烦。使用git协议,然后使用ssh密钥。这样可以省去每次都输密码。大概需要三个步骤:一、本地生成密钥对;二、设置github上的公钥;三、修改git的remote url为git协议。...

SpringBoot+Redis集成简单测试

1、创建SpringBoot项目 准备:idea、redis   2、配置 2.1 maven依赖       <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr...