字体反爬

字体反爬

点点

2021-03-29 09:04 阅读 495 喜欢 0

例如我们定义一个字体<1> 但是对应的svg显示为<5> ,那么肉眼看到的是5 ,通过源码或抓取得到的确是1。 之前的时候是通过一个字体文件,现在慢慢演变为动态字体,每次看到的都不同,所以现在我们需要对字体进行解析,得到最终的数据。

反爬

http://glidedsky.com/level/crawler-font-puzzle-1 ,关于字体反爬的一个课题。

目标地址

根据给予的地址,可以看到不同的源码与数字,那么我们可以通过控制台找到这种字体,通过页面中的base64来指定的字体文件。 先将base64 转为 ttf 文件

代码或工具都可以: https://www.motobit.com/util/base64-decoder-encoder.asp 工具转换。

代码转换(nodejs):

const base64str = xxxx由于太长,此处不写了;//data:font;charset=utf-8;base64, 之后的内容,不要逗号 const fs = require('fs'); fs.writeFileSync('./demo.ttf',Buffer.from(base64str,'base64')); 通过fontcreator软件打开后可以看到,字体展示与unicode标注的都是不同的。

现在,我还没找到除了ocr识别外的更好的办法,之前看文档有说可以从ttf中拿到映射关系的,不过没处理出来..能力有限。而且,这个我也没有使用ocr,直接使用了一个下标判断。

将ttf解析为xml ,并转为对象,然后获取下标,得到映射

const font = require('font-carrier'); const xml2json = require('xml2json');

//加载字体 let transFont = font.transfer('./demo.ttf'); let str = transFont.toString(); let json = xml2json.toJson(str); let obj = JSON.parse(json); let fonts = obj.svg.defs.font.glyph; let map = {}; //就目前来看,还没找到对应的映射关系,比较理想的是,根据下标,除去第一个,从0开始。 fonts.forEach((t, i) => { if (i>0) { let code = t.unicode;//4 let index = i - 1;//0 //对应的意思就是:给浏览器一个字符串4 ,显示出来是 0 。 map[code] = index; } }) console.log(map); 剩下的就是一页一页的抓取,然后获取ttf并解析,最终进行匹配了..

转载请注明出处: http://sdxlp.cn/article/zitifanpa.html


如果对你有用的话,请赏给作者一个馒头吧 ...或帮点下页面底部的广告,感谢!!

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
这几天电信发生的大面积网络不能使用的问题,很多小伙伴在正常能上网时上不去,网络对于手机来说是至关重要的,有些小伙伴在使用iPhone手机的时候偶尔遇到无法上网问题,不知道如何解决,接下来小编就给小伙伴们介绍一下具体的操作步骤。
日常办公中总会遇到很多文件的转换问题。那么想让pdf文件转换成图片,有什么软件可以让我们快速完成转换哪?其实非常的简单,只要想就没有做不到,下边跟我来看一下。
有时我们登录qq时,会看到账号已被冻结的风险提示,这时候我们就没有办法正常登录qq账号了,那么,我们的qq号为什么会被冻结?如果发现qq号突然被冻结了我们要怎么去解决这个问题呢?
在微信中,经过版本更新迭代,推出了置顶聊天折叠功能,帮助我们将过多的置顶聊天折叠,折叠后同样是置顶显示,那怎么折叠置顶聊天呢,下面就和小编一起来看看吧!
相信很多小伙伴肯定遇到过,手机连接WIFI后无论是刷网页、视频,网速卡到爆,本期点点将分享通过几个小方法提高你的WIFI上网速度。设置DNS并不能提升我们的网速,但设置正确的DNS可以加快IP的解析速度,从而提高网页的打开速度。也可以净化一些运营商广告。从而提升上网的体验。
现在手机版微信软件有很多小伙伴们在使用,用来聊天,支付等,有的小伙伴在使用该软件时,想要赠送亲属卡给他人,来支付他人的支出,但是却不知道如何赠送,那么小编就来为小伙伴们介绍一下吧。
现在的智能手机内存一般都是比较大的,因此我们在出差的时候,喜欢将视频下载到手机里面以便于观看,但是如果我们在删除视频时,不小心误删了重要的视频,那么我们应该怎将删除的视频恢复呢?手机视频误删怎么恢复?
现如今手机成为了每个人的必备之物,随着现在的手机越来越智能,手机的功能越来越多,但是手机的内存越永远也跟不上我们使用的节奏,因为手机的内存越大意味着价格也就越高,就算是再大的内存,也会有使用到不足的时候,而当手机的内存不够用的时候,我们往往就会清理手机里存储的大量照片。