通过我上篇博客;中国土地市场网爬虫——浏览器Cookie验证(简单) 和中国土地市场爬虫——浏览器cookie验证(图片验证码)讲述了中国土地市场网(www.landchina.com)的两种访问限制策略,也讲述了该网站的三种限制爬虫策略。
该网站的三种防止爬虫策略
1、通过cookie验证,三次跳转,两次取得cookie的简单安全策略。
2、通过cookie验证,通过图片验证码取得cookie认证的高级安逸认识。
在原来的博客中讲述到访问限制的处理办法,今天也来讲述一下字体加密的处理。
我们可以看出左边看起来和很正常,右边源码里面也就很多乱码,我们通过手动复制粘贴也是一些中中文乱码。那这样怎么处理呢?
1、字体对应的是unicode编码。
由于在处理比如58同城,大众点评常见的字体反爬虫,发现网页源码中的字体都显示形如ģ然而该网站显示的是中文乱码。经过深入的研究高搞明白文中其实是使用的unicode编码,我们看到的乱其实就是16进制数字。
比如:
閞剨清質講棄漹歸批掱
转为 unicode编码
%u959e%u5268%u6e05%u8cea%u8b1b%u68c4%u6f39%u6b78%u6279%u63b1
我们在下载一个字体文件,打开
发现%u后面的4位16进制而字体文件$后面的4位16进制一一对应,是因为我们就可以把原来的数据转成unicode编码,然后在在字对应解密,如果没有的返回原来的数据。
2、字体文件对应
我们访问不同的链接发现有不同的woff文件,比如
fWezGsME9BXQ1W3sGFEqzhlPxznzf5nQ.woff
pieXATBGyLsPEWSOUSu1wfcC3r3vM8aa.woff
vJ3z6kV9Oo0MYQNQhaEWLTMF54ysPI1p.woff
当然这里有很多,如果我们一个文件对应还好,,但不同文件这样的工作量就很多了,,同时还有些未知的字体。然而我对比了几个woff文件发型他们加密的字体都是一样应该395个其中4个空白,只是对应的的$编码不一样而已,由于每个字体的Hash值视一样的,所以我这边就直接生成字体的Hash值对应中文字体就可以,不不要解析每个,一个就可以了。
{ "8beaf86e731da5e1c35084b7613bf342": "", "32d1c003e5f30e7dca370ccfd74b29aa": "亲", "1edf4d005dae1d95e36447c16071b8f0": "示", "fe57a376414683d4eea81e525cd084ff": "规", "1e25a05632497a30745fbc69b6b25670": "马", "a480d4c89b7df390f9171b6eb5268054": "腾", "51a7fd632c8a883ffd81a98d30d8f33f": "窗", "789d653720ceadfa8cbfb7ebe688342b": "里", "b818721b3841982945246496925b95c5": "律", "6b7c1470eb9f251daedc8876f30fe5e4": "区" …… }
这样我就只需要读取每个文件$编码对应的Hash值就可以。
3、数据还原
了解了原文unicode编码编码和字体文件,这样我们就可以进行数据还原。我们通过读取字体文件和自己对应的Hash值,然后读取下载好的html文件,进行数据还原。原来下载的HTML文件
读取数据然后进行数据还原,就能得到自己需要的数据。
总结:
1、文中乱码出现是因为不能识别的unicode编码。
2、不同的woff字体文件通过Hash值对应,这样没有必要每个文件进行对应。
3、解密替换的时候只需要替换字体的编码,没有的不用处理,由于文中也没有对所以汉字做字体处理。
这里就不方便公布源码;,如果需要相关的代码和数据,可以联系作者。
QQ号: 397713572 邮 箱: tngou@tngou.net QQ群: 277916496 手 机: 13518355196(同微信号)
可以一起做相关数据交流,和分析。
通过 验证 爬虫 讲述 处理