想必都搜索字体反爬啦 , 应该 大概 步骤 都懂吧,我也就写简陋一点啦
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=°ree=&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)