字体反爬

字体反爬

点点

2021-03-29 09:04 阅读 485 喜欢 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,微信,钉钉。有时候想要保存一些微信聊天记录,要如何才能永久储存呢?办法有很多,这个方法是最省钱省事保存最久的,可以将它们导入到word中,下面是具体办法,小编带小伙伴走一遭!
现在手机版微信软件有很多小伙伴们在使用,用来聊天,支付等,有的小伙伴在使用该软件时,想要赠送亲属卡给他人,来支付他人的支出,但是却不知道如何赠送,那么小编就来为小伙伴们介绍一下吧。
如果在没有wifi的情况下,我们接收qq信息就要流量。尤其是图片,QQ里加入的群很多,接收图片就很费流量。在这样的情况下我们可以设置屏蔽群图片,手机qq怎么设置屏蔽群图片呢?下面为小伙伴们介绍。
智能手机成为普遍存在后,年轻人很多都喜欢刷B站,那么手机B站缓存的视频在哪个文件夹呢?今天小编为小伙伴们讲解一下。
当“超前点播”成为历史,抖音上的短剧已经默默开启了“付费”模式。