本文爬取的网站如下(可以找解密工具解码)

aHR0cHM6Ly9uZXdyYW5rLmNuLw==

爬取的内容为网站的资讯情报版块的新闻资讯

鼠标点击翻页,在开发者工具中查看请求包,很容看出请求地址和参数,

其中post请求的参数如图:

其中变化的参数为nonce和xyz,我们的目标就是找出这两个参数的加密原理,就是加密函数。然后用python代码编写函数生成该加密参数,或者抠出JS代码,然后在python中调用生成加密参数,然后传入post请求,实现爬虫。

逆向过程:
1、搜索参数nonce,会有如下结果:

2、选择任一结果,选择美化代码,找到JS代码中该参数位置。

3、此时很容易看到两个参数的位置,打上断点。注意,nonce参数就是i,而上一行显示i就是j函数

4、在658行处也打上断点,点击调试。显示j函数的链接,点击进去,就找到了j函数的代买,也就是nonce参数的生成原理。

只要有一定java或者js或者C语言经验, 不难看出,这段代码就是随机生成一个由9个数字或字母组成的字符串。

此时我们可以在自己的编译器中(我用Vscode,记事本也可以)新建一个JS文件(如newrank.js),然后直接拷入上段JS代码,这样解决了第一个参数。(也可以自己用python直接写一个随机函数生成)

5、继续调试,寻找第二个参数xyz的加密原理。
xyz就是d函数,通过调试得知,d函数就是b函数,如下图。

我们点击进入b函数,结果如下

其实这个函数的作用就是把参数进行md5加密,仅此而已!!! 如果看不懂,也可以直接把JS代码抠出来,毕竟就是一个函数。抠的时候,千万要抠全了, 否则是无效的函数。亲手测试下就知道这个大坑了,尤其是新手。我们把这个函数的JS代码复制出来,加到上面新建的 JS文件里面,然后保存。

6、还要找到生成参数xyz的加密函数的参数。重复刚才的调试,可以看到,生成xyz的d函数的参数为h,而上一行显示参数h由'/xdnphb/index/getMedia?AppKey=joker&keyword=&pageNumber=页码&pageSize=10' 和字符串'&nonce='和nonce参数拼接而成。

至此,我们找到了参数生成函数,以及其参数的来源。
接下来我们只需要调用我们新建的js文件里的相应函数,生成加密参数,然后传入post请求,即可完成爬虫。

要注意调用js代码的方法,具体请见完整爬虫代码。

import requests
import pprint,time
import execjs
import hashlibheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64;` rv:47.0) Gecko/20100101 Firefox/47.0","referer": "https://www.newrank.cn/public/news.html?",}with open(r'D:\pythoncode\JS\newrank.js',encoding='utf-8') as f: #上面这个newrank.js文件就是我们新建的js文件,里面放入了从网站JS源码抠出的两个函数。js=f.read()ctx=execjs.compile(js)
for page in range(1,21):    nonce=ctx.call('j') #调用JS代码中的函数生成第一个加密参数noncexyz=f'/xdnphb/index/getMedia?AppKey=joker&keyword=&pageNumber={page}&pageSize=10&nonce=' + noncexyz=ctx.call('b',xyz) #调用JS代码中的函数生成第二个加密参数xyz#xyz参数也可以直接用python的MD5加密实现# xyz=hashlib.md5(xyz.encode(encoding='utf-8')).hexdigest()        data = {'keyword': '','pageNumber': str(page),'pageSize': '10','nonce': nonce,'xyz': xyz}# print(nonce, xyz)response = requests.post('https://www.newrank.cn/xdnphb/index/getMedia', headers=headers, data=data)print(response.status_code)# print(response.text)response_data=response.json()['value']# pprint.pprint(response_data)for item in response_data:print('资讯标题:',item['title'],'发布时间:',item['public_time'])

看到如下的爬取结果如下,心里还是挺爽的。欢迎大家留言交流 !需要那个JS代码的也可以留言。

手把手操作JS逆向爬虫入门(一)相关推荐

  1. js逆向爬虫入门-02.STEAM平台模拟登录逆向

    目录 逆向过程 python代码 git仓库    https://gitee.com/cycle1/py_re_js.git 逆向过程 打开steam网页登录页面,输入伪账号密码找一下接口,可以发现 ...

  2. js逆向爬虫入门-03.凡科网逆向分析模拟登录

    目录 逆向分析 python代码 git仓库    https://gitee.com/cycle1/py_re_js.git 逆向分析 凡科网,让经营更简单-凡科网登录 和其他网站一样 随便输入点啥 ...

  3. QQ音乐JS逆向爬虫,我用python全都爬!

    爬虫高级必然JS逆向,QQ音乐爬虫就是一个很好的练手,读完学会了直接在你女朋友面前装一手,读完你将收获到,QQ音乐JS逆向,sign参数获取,songmid参数获取,vkey参数获取,selenium ...

  4. js逆向爬虫实战之快手第三方平台之获取登录cookies!

    爬虫js逆向系列 我会把做爬虫过程中,遇到的所有js逆向的问题分类展示出来,以现象,解决思路,以及代码实现.我觉得做技术分享,不仅仅是要记录问题,解决办法,更重要的是要提供解决问题的思路.怎么突破的, ...

  5. js逆向爬虫某openLaw网站

    1.解析思路: 按照常规步骤进行抓包:输入错误的账号密码,找到post/get请求地址->看请求表单数据是否加密->全局搜索加密关键字->找到与之相关联的js加密函数,扣出js代码 ...

  6. js rsa解密中文乱码_建议收藏 | 最全的 JS 逆向入门教程合集

    点击上方"咸鱼学Python",选择"加为星标" 第一时间关注Python技术干货! 嘿,大家好,截止今天咸鱼零零散散分享爬虫.数据分析基础和 Web 的内容已 ...

  7. Python爬虫入门教程导航帖

    转载:梦想橡皮擦 https://blog.csdn.net/hihell/article/details/86106916 **Python爬虫入门教程导航,目标100篇** 本系列博客争取把爬虫入 ...

  8. python爬虫之逆向破解_js逆向爬虫实战(2)--新快之加密参数破解

    爬虫js逆向系列 我会把做爬虫过程中,遇到的所有js逆向的问题分类展示出来,以现象,解决思路,以及代码实现.我觉得做技术分享,不仅仅是要记录问题,解决办法,更重要的是要提供解决问题的思路.怎么突破的, ...

  9. Python爬虫入门之淘宝JS逆向解析请求参数Sign加密(一)

    关于JS逆向,相信这是很多小伙伴学习爬虫的一个门槛之一,如果你是初学者入门,开发一款爬虫,要以思路为主,代码是其次的 这里所说的思路指两个方面,一,分析观察目标站点思路,二,代码开发思路,二者缺一不可 ...

最新文章

  1. fn hotkeys and osd_潍坊实习生活(3)and 绊 最后的进化
  2. 科学小世界,婚姻大殿堂
  3. mysql函数创建与使用_mysql function函数创建与应用方法
  4. bytevalue_Java Short类byteValue()方法及示例
  5. irc ubuntu_让我们聊聊写作:在IRC上加入我们
  6. 求一个数是几位数,并求每位数相加的和
  7. [转] left join/right join/inner join操作演示
  8. android代码shell命令申请权限,如何授予Android Shell用户更多权限?
  9. GDAL的python版本安装使用
  10. java中输入输出总结
  11. pyramid setup(修改版)
  12. c语言开发入门教程,C语言开发入门教程
  13. html css javascript jdk 等离线开发手册
  14. 【五线谱】调号 ( 调号标识位置 | 调号标记列表 | A 大调标识原理 | F、C、G 位置标记升号 # | F 大调标识原理 | B 位置标记降号 b )
  15. java excel导入jsp_导入导出EXCEL数据(jsp+ssh)
  16. 美国硕士计算机机械专业排名,工科“三巨头”之一-机械工程的美国硕士申请全解答...
  17. Windows10文件后缀名不显示·解决方法
  18. html5手机电商网页设计代码_一部手机,万物皆可复制粘贴,这位兼职写代码的设计师将AR玩出了新高度...
  19. 洛谷P1478,陶陶摘苹果(升级版)
  20. c语言的七大查找算法,非常值得学习

热门文章

  1. 车载网络硬件在环测试系统 ETest-DEV
  2. Oracle日期增加或减少一年、一个月、一天
  3. TIMO后台管理系统,基于SpringBoot开发
  4. 百叶窗效果 html+css
  5. SharedPreference进程共享及性能优化
  6. 肖 sir_就业课__007项目讲解
  7. 《帝国时代》应用架构剖析
  8. WordPress缓存插件Cache Enabler使用教程
  9. Linux系统进程间通信编程
  10. CSS——如何在vscode中快乐的使用css tree 插件