实习僧字体反爬

想必都搜索字体反爬啦 , 应该 大概 步骤 都懂吧,我也就写简陋一点啦

1.首先,打开 进行观察目标网站

哎呀好像有些东西不在啦
在这里插入图片描述
这个时候就不要慌张,我们在慢慢看看哈,我们再看看网页源代码,瞧一瞧找一找呀 @font-face这个东西

在这里插入图片描述
在@font-face属性下 没有发现 base64哎 那可能就是文件上传的哦 刚刚好我们也找到了两个@font-face属性下的 url 打开 第二个url就行啦 因为格式为 ttf 在工具FontCreator中打开

哎呀好像这个不是我们想要的呀,那怎么办呢

我们不是还有第一个url嘛,也是一试一试嘛,不过结果好像也是一样的啊

那怎么办呢?那我们就还可以看一看 network中找一找啦
在这里插入图片描述
看来我们运气不错好像找到了哎,在点一点看一看preview,看起来好像就是哎,那就回到headers中打开一下url啦
在这里插入图片描述
同样发现是个文件在工具中打开
在这里插入图片描述
哇塞,,那就是啦,(这个只是我自己找这个文件的过程,不想知道是否还有更快的途径,欢迎各位大佬指点)

那下面就直接放代码 啦啦啦

关于其中的详解 可以看一看这一篇这里这里!点这里逻辑是一样的呀

源码中我映射关系没写完,就随便写啦几个,我们将就一哈噻

from fontTools.ttLib import TTFont
import requests
import re
basefont=TTFont('z shixisheng.ttf')
basefont.saveXML('z 实习僧测试.xml')
glyf=basefont['glyf']
glyfmap={
    0: glyf['uni30'],
    1: glyf['uni31'],
    2: glyf['uni32'],
    3: glyf['uni33'],
    4: glyf['uni34'],
    5: glyf['uni35'],
    6: glyf['uni36'],
    7: glyf['uni37'],
    8: glyf['uni38'],
    9: glyf['uni39'],
    'p': glyf['uni70'],
    'y': glyf['uni79'],
    't': glyf['uni74'],
    'h': glyf['uni68'],
    'o': glyf['uni6f'],
    'n': glyf['uni6e'],
    '工': glyf['uni5DE5'],
    '程': glyf['uni7A0B'],
    '师': glyf['uni5E08'],
}
url='https://www.shixiseng.com/interns?page=1&type=intern&keyword=python%E5%AE%9E%E4%B9%A0&area=&months=&days=&degree=&official=&enterprise=&salary=-0&publishTime=&sortType=&city=%E5%85%A8%E5%9B%BD&internExtend='
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
    'Referer':'https://www.shixiseng.com/'
}
resp=requests.get(url,headers=headers)
txt=resp.text.replace('&#',str(0))
cmapmap=basefont.getBestCmap()
for code,name in cmapmap.items():
    code=hex(code)
    name=glyf[name]
    for r_code,r_name in glyfmap.items():
        if r_name == name:
            txt=re.sub(code,str(r_code),txt)
print(txt)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值