豆瓣念书搜刮页的window.__DATA__的解密

上次发了破解知乎模仿上岸的最新版今后,许多人看了都说好,惟独没人给我点赞,今后照样贫苦人人,假如看到对你有效的文章,能够点点赞,支持下作者哈。

另有,知乎模仿上岸的代码已给出,github地点为:https://github.com/SergioJune…

愿望列位大佬给点个star哈,今后会延续更新,将我的每一个破解的网站源码都放上去,假如你也有什么解不开的网站,迎接去提issue,我会尽我才去破解,后分享给人人。

此次给人人分享的是豆瓣的念书搜刮页

https://book.douban.com/subje…

《豆瓣念书搜刮页的window.__DATA__的解密》

之前还认为豆瓣只是给新手爬虫练手的,直到我发明了这个页面,才发明是我错了,本来豆瓣也有加密的,有能够是为了防备新手乱爬吧,一看到这个就以为爬虫愈来愈不好做了,随意一个页面都有 js 加密。

而且我以为比上次的知乎的还难点,然则能够就只有搜刮页是加密的,其他的直接找悉数图书的都是直接放在html源码的。

空话不多说,死活看淡,不服就干!!!最先剖析。

1. 寻觅搜刮内容

这个图书数据是直接加密的,隐藏在了html页面,假如你须要找的话,预计还得找很长时候,我是从一位大佬告诉我的,就在下面这个页面的 window.__DATA__ 内里

《豆瓣念书搜刮页的window.__DATA__的解密》

不过假如须要本身找的话,照样能够的,须要点时候,本身仔细点找,关于这个有履历了,今后碰到那些找不到数据的都能够尝试在本页面的html内里找。

2. 找解密位置

直接搜 window.__DATA__ 即可

《豆瓣念书搜刮页的window.__DATA__的解密》

上面的就是html内容,所以是下面一个,或许你不信的话能够本身尝试下。

《豆瓣念书搜刮页的window.__DATA__的解密》

打断点,一看,果不其然,数据都出来了

《豆瓣念书搜刮页的window.__DATA__的解密》

接着就是本身逐步调试了,点击下一步本身逐步调试,看看用到的要领

《豆瓣念书搜刮页的window.__DATA__的解密》

走了几步会很轻易发明这个,这个就能够说是上面谁人要领的解密步骤了

接下来就是本身看这些 JS 的内容了,不算难,假如你凶猛的话,能看出他加密运用的要领的话,你能够直接运用 Python 言语的相干加密要领,假如看不懂,你就须要本身扣出相干的 JS 了,

假如你初学 JS 的话,学过了 JS 原型的属性,那末异常引荐你解一下,由于这里的 JS 散布在两个文件内,不像上次知乎那样直接一段函数就处理了那末简朴,而且扣出来了还须要本身改下函数之间或许对象之间的原型,总之很庞杂,这个只能领悟不能言传,篇幅有限,也不能够悉数一个一个扣出来并和你说怎么改。

照样得本身实践一次才感受到,我末了花了几天时候,扣出了1500+行代码

《豆瓣念书搜刮页的window.__DATA__的解密》

3. 用Python运转

这里扣出了 JS 运用 python 的 execjs 实行,会涌现一个题目

UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position 41: illegal multibyte sequence

《豆瓣念书搜刮页的window.__DATA__的解密》

这里是由于内里运用了一个 TextIOWrapper 对象,内里没有指定编码范例,运用了默许的 cp936 也就是 gbk 编码,使读取字符失足,我们能够在这个类上面初始化改下编码范例为 utf-8 即可运转

《豆瓣念书搜刮页的window.__DATA__的解密》

再次运转,即可胜利。

《豆瓣念书搜刮页的window.__DATA__的解密》

4. 写在末了

这个豆瓣解密能够说不难,也能够说有点难,由于须要扣许多 JS ,假如你能看懂他相干的解密要领就不须要扣,就会很轻易了。假如逆向深入研究逆行 JS 的话,照样发起你本身着手撸一遍,

末了,想要源码地点为 https://github.com/SergioJune…,对你有效的话请给个star,感谢。

假如文章对你有效的话就点个赞吧!

本文仅用于交流学习,请勿用于不法用处,后果自负!

《豆瓣念书搜刮页的window.__DATA__的解密》

    原文作者:sergiojune
    原文地址: https://segmentfault.com/a/1190000018476492
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞