字体反爬

字体反爬

点点

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


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

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
如果你平时也不爱听六十秒的语音,或者是因为没带耳机,不方便听语音,那么不妨赶快跟着本文将语音自动转换成文字的方法设置起来,这样一来,不管是不爱听语音,还是不方便听语音,都能够轻松的知道别人想说的是什么了,令日常沟通变得更加便利。
在电脑中都有截图功能给小伙伴们使用,让小伙伴们可以将电脑屏幕上的某个画面保存,那该怎么在电脑上截屏截图呢,电脑截屏快捷键是什么?
微信键盘是微信预计推出的功能,主旨是为了保护用户的隐私安全,不过目前微信键盘还未正式上线,正在内测中,那我们怎么获得微信键盘内测资格呢,下面就和点点一起来看看吧!
刷抖音,看到好看的视频,保存下来,想要分享到朋友圈,但是却发现找不到刚保存的视频,打开自己手机相册却能看的到。微信发图时找不到在其他软件上刚保存的图片或视频,但是在手机自带相册里面能看到的解决办法,亲测有效。
现在的社交软件有很多,但是实用面积广的就哪几个,里边QQ是最早的功能也是比较全的,QQ是现在十分常用的游戏社交软件之一,有些小伙伴不知道怎么找到手机中的QQ文件,接下来小编就给小伙伴们介绍一下具体的操作步骤。
电脑win10 c盘关乎到用户的电脑运行以及系统流畅度,如果系统盘变成了红色爆满,那可以说电脑几乎就卡到无法运行了,因为各种临时文件都是需要在C盘中存储的,这里为小伙伴们带来C盘爆满的解决办法。
生活与工作中,我们在使用微信时,肯定需要发送比较大(不能发送超过100mb的视频)的视频文件,很早的时候都是用QQ与微信的互传,这样就是有点麻烦,点点这期跟小伙伴们分享一个比较简单的方法。
随着微信的发展越来越多的小伙伴们在使用,使用mac苹果电脑版微信的用户,发现电脑越来越慢,因此想要清除微信中的聊天记录,但是却不知道如何清除,那么小编就来为小伙伴们介绍一下吧。