字体反爬

字体反爬

点点

2021-03-29 09:04 阅读 447 喜欢 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


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

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
手机是我们日常生活中常用的生活工具,那么手机微信是我们大多数小伙伴们常用的支付应用,同时也是国民社交应用,在使用微信支付时经常会开通一些自动续费扣费的业务,忘记后会自动扣费续订,那我们怎么关闭微信的自动扣费业务呢?
我们在工作中会用到各种各样的表格,而WPS表格是我们现在经常使用的办公软件,当我们有文档的时候,可以直接导入进表格中,而不用我们手动输入。今天小编就告诉大家电脑端怎么将TXT文档导入进WPS表格中。
iPhone12如何关机?当我们在购买了iPhone12系列手机之后,想要将手机关机,发现用长按关机键无法关机,这是为什么呢,为什么iPhone12长按关机键无法关机,iPhone12如何关机,下面就和点点一起来看看吧!
互联网应用经常需要存储用户上传的图片,比如facebook相册。
最近,微信经过更新之后,拥有了众多热门的功能,其中最受欢迎的就是微信朋友圈不止可以发9张照片了,可以最多发20张照片,对于很多喜欢分享自己生活的小伙伴们来说非常方便,但是很多小伙伴们不知道怎么发,下面就让点点给小伙伴们介绍一下具体的教程。
c盘哪些文件可以删除?C盘里面的哪些文件可以删除?当我们在使用电脑一段时间之后,可以看到自己的C盘一下就多了很多内存,非常影响系统运行,那c盘哪些文件可以删除,怎么把C盘不需要的文件删除,下面就和小编一起来看看吧!
我对canvas中rotate其实是一脸蒙逼的... 虽然之前有做过图片旋转,但那是在他人的基础上直接修改的,至于为啥会这样..讲真,还真没注意过,但是今天又需要用到这块了,实在搞不定了,找了各种资料,终于明白了.. 坐标系的问题。
U盘使用过程中,莫名其妙的问题还是有很多的,其中最奇怪的就是出现U盘拒绝访问的问题,然后就无法打开U盘了,里面的资料也拷贝不出来,不用花钱,一招搞定。一招让u盘重获新生,千万不要拿去换新。u盘无法访问如何解决?