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

还有,知乎模拟登陆的代码已给出,github地址为:https://github.com/SergioJune/Spider-Crack-JS

希望各位大佬给点个star哈,以后会持续更新,将我的每个破解的网站源码都放上去,如果你也有什么解不开的网站,欢迎去提issue,我会尽我能力去破解,后分享给大家。

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

https://book.douban.com/subject_search?search_text=网络是怎样连接的&cat=1001

以前还以为豆瓣只是给新手爬虫练手的,直到我发现了这个页面,才发现是我错了,原来豆瓣也有加密的,有可能是为了防止新手乱爬吧,一看到这个就觉得爬虫越来越不好做了,随便一个页面都有 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/Spider-Crack-JS/tree/master/douban,对你有用的话请给个star,谢谢。

如果文章对你有用的话就点个赞吧!

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

豆瓣读书搜索页的window.__DATA__的解密相关推荐

  1. 爬虫爬取豆瓣的读书搜索页 java+jsoup+selenium

    图书搜索页面: https://book.douban.com/subject_search?search_text=9787535681942&cat=1001 以前写的爬虫使用发现不能用了 ...

  2. Scrapy 豆瓣搜索页爬虫

    Scrapy 豆瓣搜索页爬虫 使用scrapy爬虫框架对豆瓣图书搜索结果进行爬取 Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架 可以应用在包括数据挖掘,信息处理或存 ...

  3. python爬取豆瓣书籍_Python 爬取豆瓣读书标签下的书籍

    这几天想爬下豆瓣读书时发现 github 上他人分享的源码都有一定年份了,豆瓣读书的页面貌似也稍微改了,于是就在前人轮子的基础上改进一下重新爬下豆瓣读书.Python 版本是 3.7. 1.爬取信息 ...

  4. html+css制作豆瓣读书页面

    效果所下图所示: 1.第一层导航栏,我使用ul写的 这部分写在body-->header-->div1中(分不清在哪里的,看文章末尾的完整代码) <div class="d ...

  5. 某某读书搜索__DATA__分析

    1.分析 打开控制台分析接口数据,通过"社会学(第八版)" 没有找到相关数据,观察xhr发现也没有数据,这时数据很可能是html返回的,但是数据加密了! 查看源代码分析 控制台搜索 ...

  6. 爬取豆瓣读书-豆瓣成员常用的标签(Python爬虫实战)

    前两篇博客,我们介绍了如何对豆瓣读书历史记录进行抓取,这一篇博客是一个收尾工作. 传送门: 爬取豆瓣读书-用户信息页链接(Python爬虫实战) 爬取豆瓣读书-用户所有阅读书籍名称.日期和书籍链接(P ...

  7. HTML期末作业----读书网(模仿豆瓣读书)

    如下代码供学习交流,获取完整代码,请关注公众号(coding加油站)获取. 1.网页作品简介 : HTML期末大学生网页设计作业,模仿豆瓣读书,完美复刻,有登录注册界面,可单独作为登录注册的作业使用 ...

  8. Python爬虫 - 爬取豆瓣读书TOP250电子书

    1.爬取思路 访问豆瓣读书top250,并提取书籍名称. 把提取的书籍名称,放到搜书网站(本文使用的是熊猫搜书). 把搜索的结果保存到本地.(底部有保存的文本文件,需要自提) 2.重点解析 1.豆瓣翻 ...

  9. 利用免费工具爬取关键词(数据)的豆瓣读书数据——八爪鱼爬取数据并导出到Excel/Mysql数据库设置示例——关键词:爬虫、读书、实用

    目录 原始需求 需求解读 所需软件配置 软件介绍 八爪鱼 Excel Navicat Mysql 数据采集及保存 步骤1  探索搜索页面规律 步骤二  八爪鱼批量生成链接,添加参数(前缀+尾巴) 步骤 ...

最新文章

  1. java框架篇---spring IOC依赖注入
  2. 使用secureCRT连接VMware-Ubuntukylin虚拟机
  3. 深度学习笔记5:Building Deep Networks for Classification
  4. Juniper NetScreen 基于源NAT转换
  5. linux主机服务器日志采集,Linux通过Rsyslog搭建集中日志服务器
  6. 多线程下的单例模式你真的了解吗?
  7. vector 插入_Java学习五分钟系列:对比Vector、ArrayList、LinkedList
  8. terminal中常用的rvm指令
  9. 案例:如何解决难以重现的BUG
  10. 计算机基础知识office软件,计算机基础知识和office办公系列软件的使用(完整版)...
  11. 25句经典语录 带你成长
  12. Windows调出屏幕键盘的步骤
  13. python判断水仙花数函数_Python(6):上机练习——函数练习之水仙花数
  14. JAVA核心编程之集合
  15. Unity子物体脱离父物体,解除父子关系,子物体不随父物体移动
  16. 【汇正财经】选股有什么策略?如何找到适合自己的选股策略?
  17. 你想要的宏基因组-微生物组知识全在这(1906)
  18. 第二章 存储,2.2 AliCloudDB--双11商家后台数据库的基石(作者:玄惭)
  19. FGF21 类似物 PF-05231023 改善糖尿病并发症
  20. PCIe(peripheral component interconnect express)

热门文章

  1. clear:both
  2. 学生用科学计算机,学生科学计算器
  3. 《硅基物语.AI大爆炸》——AIC松鼠活动第四期
  4. 洛谷 P1680 奇怪的分组
  5. lua语言入门学习(四)项目初体验之抽奖转盘(1)
  6. ZeroMQ学习笔记(4)——可靠的请求-应答模式
  7. Clickhouse limit by函数
  8. 小W的Java学习之路:java基础(四)-数组
  9. 雪祺电气IPO过会:年营收19亿 顾维控制48%股权
  10. python爬虫笔试题目_Python 爬虫笔试(含答案)