字体反爬应该是比较常见的反爬手段了,常见于招聘网站平台,相信很多不少人都遇到过,特征比较明显,而且限制难度愈发增加,比如随机替换字体库。
字体反爬最关键的是确定字体库(前提),找到映射关系(关键),然后直接替换即可!
在学习实践lideSky字体反爬(第三题好像放弃了)的过程中找到一个替代的练手网站,闪职网,字体反爬比较简单,适合本渣渣这种新手练习学习使用。
练手网站:http://shanzhi.spbeen.com/
感谢作者提供练手网站平台!
特征:关键数字信息网页前端显示和网页源码显示不一致,网页源码显示一定规律的乱码特征
需要说明的是该网站还有无限断点调试反爬,直接在该处永不断点解决!
为什么说这个字体反爬网站比较简单适合练手:
1.字体文件比较明显,就在网页开头的样式表中,而且字体文件单一,没有字体库,会随着网页刷新更换字体文件;
2.字体文件中字体映射关系一目了然,打开即可看到相应的映射关系,一目了然。
这里简单说下,字体文件打开及分享工具:
在线字体编辑器 :https://font.qqe2.com/
字体编辑软件 :FontCreator
如果需要通过python去读取识别字体文件里面的内容 :pip install fontTools ‐i https://pypi.tuna.tsinghua.edu.cn/simple
最后在简单分享一个几个代码片段:
字体获取:
import requests
from fontTools.ttLib import TTFont
def get_ttf():
url="http://shanzhi.spbeen.com/static/fonts/szec.ttf"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"
}
response = requests.get(url=url, headers=headers, timeout=6)
with open("szec.ttf",'wb') as f:
f.write(response.content)
print("保存字体文件成功!")
def get_xml():
font = TTFont('szec.ttf')
font.saveXML('szec.xml')
字体映射:
#映射
number_map = {
"9F92":0,
"9EA3":1,
"993C":2,
"958F":3,
"9FA4":4,
"9476":5,
"9A4B":6,
"9F64":7,
"9FA5":8,
"9E3A":9
}
月薪转换:
#转换月薪
def get_people_salarys(salarys):
people_salarys=[]
for salary in salarys:
salary=salary.split(";")
salary=salary[:-1]
nums=""
for key in salary:
key=key[-4:]
key = key.upper()
num=number_map[key]
print(key,num)
nums=f'{nums}{num}'
print(nums)
people_salarys.append(f'{nums}¥/月')
print(people_salarys)
return people_salarys
招聘人数转换:
#转换招聘人数
def get_people_numbers(peoples):
people_numbers=[]
for people in peoples:
key=re.findall(r' 招聘&#x(.+?);人',people)[0]
key =key.upper()
people_number=number_map[key]
print(key,people_number)
people_numbers.append(f'招聘{people_number}人')
print(people_numbers)
return people_numbers
以上仅供参考!
完整代码获取
请关注本渣渣公众号
后台回复“闪职”
声明
本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系立即删除!
参考来源:
JS的字体反爬-依恋、阳光
https://blog.csdn.net/qq_51179608/article/details/126690599
Python爬虫之字体反爬解析-程序员梓羽同学
https://zhuanlan.zhihu.com/p/629637678?utm_id=0
Python高阶爬虫之字体反扒(GlideSky字体解密)-Code皮皮虾
https://blog.csdn.net/llllllkkkkkooooo/article/details/108808881
·················END·················
你好,我是二大爷,
革命老区外出进城务工人员,
互联网非早期非专业站长,
喜好python,写作,阅读,英语
不入流程序,自媒体,seo . . .
公众号不挣钱,交个网友。
读者交流群已建立,找到我备注 “交流”,即可获得加入我们~
听说点 “在看” 的都变得更好看呐~
关注关注二大爷呗~给你分享python,写作,阅读的内容噢~
扫一扫下方二维码即可关注我噢~
关注我的都变秃了
说错了,都变强了!
不信你试试
扫码关注最新动态
公众号ID:eryeji