X点评,CSS字体加密问题 | 您所在的位置:网站首页 › icloud加密文件是什么 › X点评,CSS字体加密问题 |
最近做爬虫时候,遇到个比较头大的事儿,页面看到的信息,在源码内。。。是一坨坨不知道是什么东西的 。。。东西。。 也就是说,他把关键部分的信息。。不知道用什么原因混淆了。。 往常没有爬过这一类网站,所以算是第一次解决。 简单记录一下。。 既然它页面可以正常显示,那么肯定数据是拿到的,那么解析的方式不一样。。看一下元素样式,发现这里一堆。。。secret 最像了。。加密嘛。当然如果不这么明显就挨个取消样式,看看去掉哪个后,界面不正常显示了, 那就找到了。。 既然是个样式,那么就去CSS里面搜一下,源码先找一找。。。好家伙。。还挺看不起我,打个备注。。混淆。。字体文件被变成base64放在了页面里。当然也有些网站会放到CSS文件里面。或者引用 TTF 等字体文件。 接下来。。解密base64 解密写入一个字体文件,验证下是不是我们需要的ttf文件 通过工具打开文件。。。我用多个是FontCreator 哦吼。。这一堆 9FA4 9EA3 的。。好像和我界面看到的还是不太一样。。看起来应该是被编码后的。。从源码贴出来,多试试几种编码, 发现是ASCII的。。。然后就差不多了。。 BinaryWriter bw; try { bw = new BinaryWriter(new FileStream("mydata1.ttf", FileMode.Create)); } catch (IOException e) { Console.WriteLine(e.Message + "\n Cannot create file."); return; } bw.Write(decodedByteArray, 0, decodedByteArray.Length); bw.Close(); var families = Fonts.GetFontFamilies(location: @"D:\WorkDir\worktest\DownloadTest\CodeEncrpy\bin\Debug\mydata1.ttf"); foreach (FontFamily item in families) { var types = item.GetTypefaces(); foreach (Typeface face in types) { GlyphTypeface glyph; face.TryGetGlyphTypeface(out glyph); IDictionary dic = glyph.CharacterToGlyphMap; foreach (KeyValuePair kp in dic) { Console.WriteLine(Ten2Hex(kp.Key.ToString()) + " " + (kp.Value - 1)); } } }这样输出了 ASCII码 和 值的对应关系。。然后。。就搞定了。这里用的是C# … PYTHON 里面好像直接用 TT_fonts 就好。挺牛B的 https://www.matools.com/code-convert-unicode 在线编码 |
CopyRight 2018-2019 实验室设备网 版权所有 |