搜索页的window.__DATA__的解密是怎样的

这篇文章将为大家详细讲解有关搜索页的window.__DATA__的解密是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

成都网站建设哪家好,找创新互联建站!专注于网页设计、成都网站建设、微信开发、小程序制作、集团企业网站制作等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都茶楼设计等众多领域,积累了大量丰富的经验,同时也获得了客户的一致称扬!

上次发了破解知乎模拟登陆的最新版之后,很多人看了都说好,唯独没人给我点赞,以后还是麻烦大家,如果看到对你有用的文章,可以点点赞,支持下作者哈。

这次给大家分享的是豆瓣的读书搜索页

https://book.douban.com/subject_search?search_text=%E7%BD%91%E7%BB%9C%E6%98%AF%E6%80%8E%E6%A0%B7%E8%BF%9E%E6%8E%A5%E7%9A%84&cat=1001

搜索页的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__的解密是怎样的

关于搜索页的window.__DATA__的解密是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网页标题:搜索页的window.__DATA__的解密是怎样的
URL网址:http://hbruida.cn/article/jojiig.html