Python爬虫之Js逆向案例(2)-知乎搜索

声明:某乎加密逆向分析仅用于研究和学习

大家好,今天继续分享关于某乎关键词搜索接口为案例的Js逆向实战。如果你是一名新手,而且还没有来得及看上一篇《Python爬虫之Js逆向案例(1)-某乎搜索》的话,建议你先去看完再来看这一篇,因为里面有很多有利于新手实操的高能总结,还包含了一些js调试技巧,上一篇里中总结的内容在后续案例中不会再那么详细的讲了,不然有些冗余,见谅哈!;

今天的内容是在昨天的基础上继续深入。通常情况下,我们的爬虫肯定不只是取第一页的数据,例如,我们需要获取前20页的数据,该怎么办呢?下面演示,使用爬虫获取翻页数据;

下面会进行以下几步进行分析(下方演示过程全部使用chrome浏览器);

  1. 锁定关键字段;
  2. 破解关键字段;
  3. python爬虫结果演示;

一.锁定关键字段

昨天我们已经定位到搜索接口,所以今天的获取翻页数据就是在昨天的接口上继续处理。

根据昨天的“高能总结”,锁定关键字段只需要比对连续几次接口请求时的不同点即可,对比之后,很容易得到答案:

  1. handers里的x-zse-96,这个我们上一篇已经破解了,扣好的加密文件直接用即可得到;
  2. 请求参数上多了2个字段,变了2个字段,如下图:

上拉刷新后第二页的请求参数里面多的字段:search_hash_id、vertical_info,第二次之后这俩字段都一样;
第一页基础上改变的字段:lc_idx、offset,这俩字段每次请求都相同;

综上:今天只需要解出search_hash_id的值就行了。老方法,直接在接口上找到字段search_hash_idjs文件出现的位置,如下图:

定睛一看,哦呵!就两个地方出现了,这是不是有点简单呀???跑偏了?出现这种情况不要慌,仔细分析一下,这两个地方既然都不是给search_hash_id赋值的,那说明什么?说明这个东西看似一个md5加密的值,但又不是在前端加密完成的值,那又能来自哪呢?

高能总结:
技巧:如果关键值在前端没有出现赋值语句,那只能来自三种地方:

  1. 该值在前端某个地方写死的,是个定植一直都不变;
  2. 来自cookies里取的;
  3. 接口返回的,直接根据这个键名在某个地方取出来的,比如obj.a.b[‘XXX’];

二.破解关键字段;

根据上面的情况,我们一个个的排查,第一种情况能直接排除,因为换个关键词再翻页的话,这个值就变了,说明这里并不是前端写死的;第二种情况,我们翻看cookies发现里面并没有这个值;只剩下第三种情况了,那我们就在接口上搜索一下呗,如下图:

还真有命中项,这个关键字我只请求了三次,这个关键字在三次接口里既然都有出现,那第一次出现的地方不就是后面接口的来源了吗?我们点开第一个,然后在右下方再搜索,如下图:

我们发现上面分析到的值这里貌似都能找到,所以翻页的时候,只需要把第一次的这个值保存下来,拼接到url参数里就行了呗,这次的内容是不是比上一篇的要简单多了;

这里再分析一个小技巧,如何快速定位请求头里的字段哪些是关键字段呢?

高能总结:
技巧:

  1. 如上图,在接口上右键,拷贝当前接口的curl版,放在编辑器中的控制台去请求一下,在能请求通的前提下,每次都减少一些字段,直到不能再减少为止;
  2. 上面的的方式对curl来说能找到少请求头参数,但是如果用python的request包请求的话,可能略有字段差异,大家试一下就知道了;

三.python爬虫结果演示

在上一篇基础上微改,抓取请求前三页数据就很轻松了吧:

后期会持续分享爬虫案例-100例,有兴趣的同学可加入我的知识星球,有更多技巧、高能总结等你哦!!!;

欢迎加入「python、爬虫、逆向Club」知识星球

Python爬虫之Js逆向案例(2)-某乎搜索相关推荐

  1. Python爬虫之Js逆向案例(6)-某道翻译

    Python爬虫之Js逆向案例(6)-有道翻译 声明:某道翻译加密逆向分析仅用于研究和学习,如有侵权,可联系删除 大家好,距离上次分享js逆向案例已经有一个月了,在这期间每次在快要揭秘出来时.整理文章 ...

  2. Python爬虫之Js逆向案例(8)-某乎x-zst-81之webpack

    声明:某乎加密逆向分析仅用于研究和学习,如有侵权,可联系删除 大家好,相信各位童鞋通过上期<Python爬虫之Js逆向案例(7)-知hu最新x-zse-96之rpc方案>这篇文章了解了什么 ...

  3. Python爬虫之Js逆向案例(12)-知乎答案批量获取保存到CSV文件

    声明:知乎答案批量获取分析仅用于研究和学习,如有侵权,可联系删除 大家好,本期分享的内容是一个关于批量获取知乎答案的案例,本案例的重点是教大家在写爬虫时如何更规范的去编写自己的爬虫.场景是这样的,最近 ...

  4. Python爬虫:利用JS逆向抓取携程网景点评论区图片的下载链接

    Python爬虫:利用JS逆向抓取携程网景点评论区图片的下载链接 1. 前言 2. 实现过程 3. 运行结果 1. 前言 文章内容可能存在版权问题,为此,小编不提供相关实现代码,只是从js逆向说一说到 ...

  5. 【python爬虫】js逆向:空气质量在线平台,解决反调试,加密

    js逆向:pyhon爬虫空气质量,无线debugger,AES,DES,MD5加密 前言 解决无限debugger 第一次debugger 第二次debugger 加密解密流程分析 请求数据加密 返回 ...

  6. Python爬虫:从js逆向了解西瓜视频的下载链接的生成

    前言 最近花费了几天时间,想获取西瓜视频这个平台上某个视频的下载链接,运用js逆向进行获取.其实,如果小编一开始就注意到这一点(就是在做js逆向时,打了断点之后,然后执行相关代码,查看相关变量的值,结 ...

  7. python爬虫进阶js逆向实战 | 爬取 破解某安部加速乐cookie

    很久没有写技术性的文章了,最近打算更新一系列的js逆向实战 今天的网站是某安部的一个加密cookie的分析跟破解 aHR0cHM6Ly93d3cubXBzLmdvdi5jbi9uMjI1NDA5OC9 ...

  8. <python爬虫之JS逆向实例-2>某宇创-状态码521-加速乐

    声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵犯了您的合法权益,请告知,我将及时更正.删除,谢谢.邮箱地址:lc1139411732@163.com 目标站点:aHR0cHM6Ly93 ...

  9. python爬虫实战——js逆向登录第一篇:鹏华基金

    鹏华基金 鹏华基金 - 登录 https://aj.phfund.com.cn/login.html 小弟不爱写文字(CSDN的编辑器我不会用.),因此大多数以图片为准~各位大佬看官请见谅~ 如果各位 ...

最新文章

  1. 上周我面了个三年 Javaer,这几个问题都没答出来
  2. JAVA垃圾回收机制概要
  3. Centos部署YApi
  4. python print换行_Python中九九乘法表与古诗对话机器人及sep-end值
  5. poj 2255 Tree Recovery 解题报告
  6. 修改服务器的共享内存大小,服务器共享内存大小能改么
  7. 测试自己幸运数字的软件,心理测试:4个数字哪个是你的幸运数字?测试你的心理年龄!...
  8. 梅山启动建设智慧管网 为城市管理者提供智能决策支持
  9. node.js学习笔记(黑马教程)-1-基础了解
  10. 教你如何使用抖音直播间数据分析工具
  11. (一)MATLAB中的输入与输出
  12. 详解MATLAB在最优化计算中的应用(pdf版)
  13. fcitx-configtool
  14. [Python GUI]Python内置图形界面tkinter Eye-Hand Coordination--游戏实战1
  15. 上海交通大学计算机专业考研多少分进复试,2019考研:初试分数370+,有希望进上海交通大学么?...
  16. salesforce工作中常用的formula用法汇总
  17. 逐飞K66核心板+逐飞DAP下载器调试方式及接线(SWD)
  18. 富士相机设置传原图_【富士 X-E3 无反相机使用体验】蓝牙|WIFI|连接|图像传输_摘要频道_什么值得买...
  19. SparkRDD函数详解
  20. HTTP协议之GET与POST区别

热门文章

  1. 如何将express搭建的后台代码部署到服务器域名访问
  2. FFA-Net: Feature Fusion Attention Network for Single Image Dehazing
  3. 日复一日的坚持着,希望自己早日如愿,把一个个职业规划尽快实现
  4. ajax 微信code获取_微信网页授权——获取code、access_token、openid,及跨域问题解决...
  5. 谁说MAC原生无法玩游戏---START-腾讯云游戏-开启MAC,低配WIN以及TV玩网游新时代
  6. 物体的轴向指向目标(LookAt高级版)
  7. java 手电筒_《SystemUI》限制低电量打开手电筒
  8. android简单手电筒,android 简单的手电筒制作
  9. centos7 网桥桥接、网卡绑定终极实战
  10. Numpy和spicy函数复习1