上次发了破解知乎模仿上岸的最新版今后,许多人看了都说好,惟独没人给我点赞,今后照样贫苦人人,假如看到对你有效的文章,能够点点赞,支持下作者哈。
另有,知乎模仿上岸的代码已给出,github地点为:https://github.com/SergioJune…
愿望列位大佬给点个star哈,今后会延续更新,将我的每一个破解的网站源码都放上去,假如你也有什么解不开的网站,迎接去提issue,我会尽我才去破解,后分享给人人。
此次给人人分享的是豆瓣的念书搜刮页
之前还认为豆瓣只是给新手爬虫练手的,直到我发明了这个页面,才发明是我错了,本来豆瓣也有加密的,有能够是为了防备新手乱爬吧,一看到这个就以为爬虫愈来愈不好做了,随意一个页面都有 js 加密。
而且我以为比上次的知乎的还难点,然则能够就只有搜刮页是加密的,其他的直接找悉数图书的都是直接放在html源码的。
空话不多说,死活看淡,不服就干!!!最先剖析。
1. 寻觅搜刮内容
这个图书数据是直接加密的,隐藏在了html页面,假如你须要找的话,预计还得找很长时候,我是从一位大佬告诉我的,就在下面这个页面的 window.__DATA__ 内里
不过假如须要本身找的话,照样能够的,须要点时候,本身仔细点找,关于这个有履历了,今后碰到那些找不到数据的都能够尝试在本页面的html内里找。
2. 找解密位置
直接搜 window.__DATA__ 即可
上面的就是html内容,所以是下面一个,或许你不信的话能够本身尝试下。
打断点,一看,果不其然,数据都出来了
接着就是本身逐步调试了,点击下一步本身逐步调试,看看用到的要领
走了几步会很轻易发明这个,这个就能够说是上面谁人要领的解密步骤了
接下来就是本身看这些 JS 的内容了,不算难,假如你凶猛的话,能看出他加密运用的要领的话,你能够直接运用 Python 言语的相干加密要领,假如看不懂,你就须要本身扣出相干的 JS 了,
假如你初学 JS 的话,学过了 JS 原型的属性,那末异常引荐你解一下,由于这里的 JS 散布在两个文件内,不像上次知乎那样直接一段函数就处理了那末简朴,而且扣出来了还须要本身改下函数之间或许对象之间的原型,总之很庞杂,这个只能领悟不能言传,篇幅有限,也不能够悉数一个一个扣出来并和你说怎么改。
照样得本身实践一次才感受到,我末了花了几天时候,扣出了1500+行代码
3. 用Python运转
这里扣出了 JS 运用 python 的 execjs 实行,会涌现一个题目
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position 41: illegal multibyte sequence
这里是由于内里运用了一个 TextIOWrapper 对象,内里没有指定编码范例,运用了默许的 cp936 也就是 gbk 编码,使读取字符失足,我们能够在这个类上面初始化改下编码范例为 utf-8 即可运转
再次运转,即可胜利。
4. 写在末了
这个豆瓣解密能够说不难,也能够说有点难,由于须要扣许多 JS ,假如你能看懂他相干的解密要领就不须要扣,就会很轻易了。假如逆向深入研究逆行 JS 的话,照样发起你本身着手撸一遍,
末了,想要源码地点为 https://github.com/SergioJune…,对你有效的话请给个star,感谢。
假如文章对你有效的话就点个赞吧!
本文仅用于交流学习,请勿用于不法用处,后果自负!