web爬虫——某电影网站字体反爬

某电影网站字体反爬

爱好学习及分享,若文章侵权,优先联系本人删帖处理。

几个关键点
  1. base字体文件分析

    • 打开目标网页,找到woff文件链接

    在这里插入图片描述

    ![[Pasted image 20221021143619.png]]

    • 记录下数字与字符的对应关系

    在这里插入图片描述

    • 将字体文件转xml进行查看(需要安装fontTools => pip install fontTools即可)

    ![[Pasted image 20221021143825.png]]

    • 在文件中<cmap>标签下可以看到对应关系(uniE067 对应编码为 0xE067,而在网页上显示为 &#xe067)

    ![[Pasted image 20221021144048.png]]

    • 从xml文件中我们可以看到0-9这10个数字的编码,那问题每次请求页面的时候都是返回一个新的编码,那就不能用这个直接去套用新的编码了。(不能说这次0xE067是4,那下一次也是0xE067对应4,这是不对的。看一个新的xml)

    ![[Pasted image 20221021144907.png]]

    • 仅仅通过对比编码来看,两个字体文件没有半毛钱关系。但是我们怎么去通过一个base字体文件的特征去识别新的字体文件呢?
    • 这里其实每个字体都是由多个点组成的,而下面<pt>标签中的代表点的坐标。

    ![[Pasted image 20221021145526.png]]

    • 这里使用一种最简单的方式(两点间距离公式)。遍历new字体每个字的坐标系,将一个字前10个坐标依次和base的字体的前十坐标计算距离,并求和,最后得到10个距离值(因为需要对比0-9,这10个数字),其中距离值最小的一个值所对应的数字(key)就是当前new字体的数字(key)。
  2. 每次请求获取new字体文件

    ![[Pasted image 20221021153605.png]]

  3. 具体对比

    ![[Pasted image 20221021153758.png]]

  4. 结果对照

    在这里插入图片描述

    在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

意识存在感

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值