建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
温馨提示

抱歉,您需设置社区昵称后才能参与社区互动!

前往修改
我再想想

浙江经贸学院

话题 : 21 成员 : 65

加入HCSD

某字体网站收费字体爬取思路

JohnserfSe... 2020/12/3 114
(此文章仅为学习讨论,请勿用作商业用途)(此文章仅为学习讨论,请勿用作商业用途)(此文章仅为学习讨论,请勿用作商业用途) **下午剪辑视频的时候想需要用到一些比较有个性的字体,但是搜罗了一圈要么就是几百元的授权费,要么就是年费下载会员,** ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/03/222253rdrmf5pf83ursugb.png) **在我点进了字体的详情页面后,看见了字体预览的功能,如下:** ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/03/222408e7wvcjzituumagc5.png) **突然灵机一动,这会不会是突破口,于是输入了一些字符预览了一下:** ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/03/222540ow221xs3zxuezpww.png) **打开network查看:** ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/03/222633j4lilspt1tixa6ll.png) **这个word参数直接就暴露了,字母、数字、符号就是ASCII码,汉字就是gbk。所以试试看在浏览器输入该网址会有什么结果:** ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/03/223245buhxioph6hume3fn.png) **直接可以下载了?打开看看** ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/03/223316lkndtmoyfhjw48ag.png) **发现只有word参数的字符有显示,所以嘿嘿嘿(因为gbk2312-80有21886个,故暂不考虑)上代码:** ``` python import requests ascii_list=[] for num in range(1,128): ascii_list.append(str(hex(num))) url = f'https://ziti.izihun.com/build/build-font-file.html?font_id=539&words={ascii_list}&format=ttf&hex=1' url = url.replace("'","").replace(" ","").replace("[","").replace("]","").replace("0x","") seesion = requests.session() headers = { 'accept-encoding': 'gzip, deflate, br', 'accept-language': "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6", 'origin': 'https://izihun.com', 'referer': 'https://izihun.com/', 'sec-fetch-dest': 'font', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-site', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52' } r = seesion.get(url=url,headers=headers) with open('C:\\Users\\Administrator\\Downloads\\1.ttf', 'wb')as f: f.write(r.content) print('ok') ``` **创建ascii码列表,去掉多余字符,下载字体(一开始不清楚ASCII需要十六进制,所以可以改变url的hex参数或者和我一样直接生成十六进制)** *拓展:可以下载gbk编码表,读入并发送给服务器,以此类推很多其他的字体网站也可以用类似原理实现*

回复 (1)

2020/12/3 22:48

hhh可惜这个接口上限是200个字符

上划加载中
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

JohnserfSeed

角色:明星成员

话题:3

发消息
发表于2020年12月03日 22:44:57 1141
直达本楼层的链接
楼主
倒序浏览 只看该作者
某字体网站收费字体爬取思路

(此文章仅为学习讨论,请勿用作商业用途)(此文章仅为学习讨论,请勿用作商业用途)(此文章仅为学习讨论,请勿用作商业用途) **下午剪辑视频的时候想需要用到一些比较有个性的字体,但是搜罗了一圈要么就是几百元的授权费,要么就是年费下载会员,** ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/03/222253rdrmf5pf83ursugb.png) **在我点进了字体的详情页面后,看见了字体预览的功能,如下:** ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/03/222408e7wvcjzituumagc5.png) **突然灵机一动,这会不会是突破口,于是输入了一些字符预览了一下:** ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/03/222540ow221xs3zxuezpww.png) **打开network查看:** ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/03/222633j4lilspt1tixa6ll.png) **这个word参数直接就暴露了,字母、数字、符号就是ASCII码,汉字就是gbk。所以试试看在浏览器输入该网址会有什么结果:** ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/03/223245buhxioph6hume3fn.png) **直接可以下载了?打开看看** ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/03/223316lkndtmoyfhjw48ag.png) **发现只有word参数的字符有显示,所以嘿嘿嘿(因为gbk2312-80有21886个,故暂不考虑)上代码:** ``` python import requests ascii_list=[] for num in range(1,128): ascii_list.append(str(hex(num))) url = f'https://ziti.izihun.com/build/build-font-file.html?font_id=539&words={ascii_list}&format=ttf&hex=1' url = url.replace("'","").replace(" ","").replace("[","").replace("]","").replace("0x","") seesion = requests.session() headers = { 'accept-encoding': 'gzip, deflate, br', 'accept-language': "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6", 'origin': 'https://izihun.com', 'referer': 'https://izihun.com/', 'sec-fetch-dest': 'font', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-site', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52' } r = seesion.get(url=url,headers=headers) with open('C:\\Users\\Administrator\\Downloads\\1.ttf', 'wb')as f: f.write(r.content) print('ok') ``` **创建ascii码列表,去掉多余字符,下载字体(一开始不清楚ASCII需要十六进制,所以可以改变url的hex参数或者和我一样直接生成十六进制)** *拓展:可以下载gbk编码表,读入并发送给服务器,以此类推很多其他的字体网站也可以用类似原理实现*
点赞 举报
分享

分享文章到朋友圈

分享文章到微博

JohnserfSeed

角色:明星成员

话题:3

发消息
发表于2020年12月03日 22:48:23
直达本楼层的链接
沙发
只看该作者

hhh可惜这个接口上限是200个字符

点赞 评论 引用 举报

游客

您需要登录后才可以回帖 登录 | 立即注册