【媳妇当车模频道】汽车字体反爬一键解决,之家之家,2022.5.27更新
汽车实战场景之家
本次要采集的案例是字体反爬经典场景,而且是国内较早使用字体反爬的站点,字体反爬的学习可以反复琢磨这个站点。
这一次选择了一个养眼的频道进行采集,测试地址可以打开下述网址。
由于通过开发者工具查看字符都是下述符号,那只能通过requests模块进行一下数据的采集,查看代码情况。
\ude9e:一;\ued4e:了;……
这些编码都可以转换为字体文件中的编码,我们尝试读取一下。
fromfontTools.ttLibimportTTFontimportiofile_woff='./fonts/wKgHGFsUz1OAZg_zAABj9FfA3vw19..ttf'withopen(file_woff,'rb')asfont_file:font=TTFont(io.BytesIO(font_file.read()))#转换成字体对象print(font)font_obj=font['cmap']font_tables=font['cmap'].tablesuni_list=font['cmap'].tables[0].ttFont.getGlyphOrder()#['.notdef','uniED4C','uniED9E','uniECEB','uniEC37','uniEC89','uniEDCA','uniEC28','uniED68','uniECB5','uniED07','uniEC53','uniED94','uniEDE6','uniED32','uniED84','uniECD1','uniEC1D','uniEC6F','uniEDB0','uniECFC','un#iED4E','uniEC9B','uniECED','uniEC39','uniED7A','uniEDCC','uniED18','uniEC65','uniECB7','uniEDF7','uniEC55','uniED96','uniECE2','uniED34','uniEC81','uniEDC1','uniEC1F','uniED60']print(uni_list)
fromfontTools.ttLibimportTTFontfromPILimportImageFont,Image,ImageDraw#图片宽度和高度img_size=512font_img=ImageFont.truetype(file_woff,300)forcmap_code,glyph_nameinfont.getBestCmap().items():#print(cmap_code,glyph_name)#实例化一个图片对象img=Image.new('1',(img_size,img_size),255)#绘制图片draw=ImageDraw.Draw(img)#将编码读取成字节txt=chr(cmap_code)x,y=draw.textsize(txt,font=font_img)draw.text(((img_size-x)//2,(img_size-y)//2),txt,font=font_img,fill=0)img.show()