@TOC
爬虫遇到crypto加密
这几天疯狂加班么的时间写blog,今天处理的快,写一写之前无意见到的很厉害的网站,看了看还是网易易盾写的呢好像?全国建筑市场监管公共服务平台里的企业数据(话说这些都是公开的应该不会是面向监狱编程吧?)
企业数据及详情页被加密
前情提要:如果你还不知道requests或者getpost或者n多基础知识你还是先学学别的,不要老想着一步到胃 想啥呢
得到的数据是这样婶的
95780ba0943730051dccb5fe3918f9fe4c6612ab8a332ee7d1067088471faa62e290207d953d46d3a1225f20c0fde9f49ea47fe35a8\
观察这个URL, 不管翻页多少次URL前一段是固定的,就在sources全局搜这个url(你应该会用f12的对吧?)现在开始讲咋解出来的
解法
一段段减这个url 到
dataservice/query/comp/list
搜着了嘿嘿
搜到了在哪个页面里 再进入页面继续ctrl+f寻找这个在哪一行,然后打上断点 点翻页,看看从这里获得的数据怎么被加密的,跳跳跳,发现了,加密函数一般就这diao样
t.interceptors.response.use((function(t) {
var e = JSON.parse(p(t.data));
return e
}
JSON.parse(p(t.data))
稍微会一点编程的就知道,用了p这个函数,传进去了t.data,点进这个p函数
可以在console里print一下e,让程序运行过加密方法后再print,能看到e里面就是想要的数据啦,还贴心的是json格式
function p(t) {
var e = o.a.enc.Hex.parse(t)
, n = o.a.enc.Base64.stringify(e)
, a = o.a.AES.decrypt(n, u, {
iv: d,
mode: o.a.mode.CBC,
padding: o.a.pad.Pkcs7
})