python爬虫之快速对js内容进行破解

作者:dragon-brother 时间:2022-05-28 13:50:16 

前言

一般js破解有两种方法,一种是用Python重写js逻辑,一种是利用第三方库来调用js内容获取结果。这两种方法各有利弊,第一种方法性能好,但对js和Python要求掌握比较高;第二种方法快捷便利,对一些复杂js加密很有效。这次我们就用第三方库来进行js破解。

目标网站

本次网站是[企名片],网站对展示的数据进行了加密,所以直接找根本找不到。

目标url:https://www.qimingpian.com/finosda/project/pinvestment

js分析调试工具

对js进行分析调试的浏览器一定要用谷歌浏览器,用这个来调试测试真的很方便。首先我们按F12打开开发者工具,选到network选项并勾选preserve log 选项,然后输入网址url来抓包。此时你会发现网页源码里没有展示内容,在搜索也找不到我们看到的内容,那说明网页内容是被加密处理了。

此时你可以一个个看每个包找找有什么可疑的内容,当然我们一般会先看xhr里的内容,一眼我们就发现里面都有encrypt_data这个数据,看着很像。

python爬虫之快速对js内容进行破解

我们ctrl加shift加f键搜索encrypt_data,找到第一个js里的encrypt_data内容,然后翻到下面return e.encrypt_data这一行来,打上断点看看这会是什么内容。(一般我们搜索到return我们搜索的内容都要打上断点来看看,八九不离十的)

打好断点后我们刷新页面来观察,选中e.encrypt_data右键有个什么什么in console的,点这个会在下面出现我们选中的内容是什么。然后把后面的Object(d.a)(e.encrypt_data)用同样的方法来试下,发现没有网页的内容啊。

这里一定要注意我们打的断点,在按一次,重复上面的步骤会发现,Object(d.a)(e.encrypt_data)这不就是我们要的内容吗!e.encrypt_data这个就是我们xhr里面的那个encrypt_data,Object(d.a)是一个函数,就是这个函数对内容进行了加密,我们只要破解这个函数就OK了。

python爬虫之快速对js内容进行破解

选中Object(d.a)上面会出现它在哪里,点击下跳转过去。可以发现函数返回了一个json对象。这个返回结果包括1个s函数,参数里只有a.a.decode(t)这一个变量,其余都是常量。

python爬虫之快速对js内容进行破解

所有我们用同样的方法找到s函数的具体内容和a.a.decode()这个函数的具体内容。方法就是我们在return JSON.parse这里重新打断点,点击断点的那个下一步,然后找上述函数的内容。

python爬虫之快速对js内容进行破解

s函数

python爬虫之快速对js内容进行破解

a.a.decode()

python爬虫之快速对js内容进行破解

利用webstorm编辑器来运行上述函数进行调试

1 首先我们安装Nodejs,去官网下载安装,这是js环境。这个自己搜索个安装教程吧,这里不过多介绍了。

2 WebStorm 安装后激活,教程网上很多,大家自行搜索。它使用方式与 PyCharm 很类似。

我们把上述所需要的函数全部扣下来放到webstorm中,然后运行。注意有的函数里面会有没有定义的参数,遇到这些我们几句在谷歌浏览器里一个个找就可以了,一般会有很多常量,直接替换掉。

然后我们调用上述方法可以看到能够正常获取数据了,这里js里的部分方法我重新命名了,注意下,下面是部分代码片段。

python爬虫之快速对js内容进行破解

最后用 Python 去调用解密函数就行了,这里出于对网站保护就不直接贴完整代码了。

python爬虫之快速对js内容进行破解

来源:https://www.cnblogs.com/jlc92blog/p/11153907.html

标签:python,爬虫,js,破解
0
投稿

猜你喜欢

  • JS不同加载方式下的window.onload

    2009-05-21 18:09:00
  • Javascript 回调和事件(翻译)

    2009-03-28 11:47:00
  • 八个有用的WordPress的SQL语句

    2009-01-12 18:54:00
  • python_mask_array的用法

    2022-05-10 06:25:27
  • asp Access数据备份,还原,压缩类代码

    2011-03-07 11:16:00
  • Python实现监控内存使用情况和代码执行时间

    2023-05-02 15:42:02
  • 用自定义html标签让IE支持html 5新增元素

    2008-03-18 12:57:00
  • asp空间判断jmail组件是否安装或支持的代码

    2011-02-16 10:49:00
  • 怎样使用 SQL Server 数据库嵌套子查询

    2009-02-05 15:26:00
  • Python采集大学教务系统成绩单实战示例

    2021-05-13 23:14:43
  • 人脸识别实战之Opencv+SVM实现人脸识别

    2021-01-06 09:32:13
  • [JS效果]动画效果打开/关闭/移动层

    2008-04-10 11:42:00
  • 微信小程序实现上传视频功能

    2023-08-24 16:18:42
  • Python2.7环境Flask框架安装简明教程【已测试】

    2023-12-17 11:59:42
  • Python中删除文件的几种方法实例

    2021-02-02 05:57:13
  • DW表格应用之细线框的制作

    2008-02-03 19:00:00
  • 推荐:怎么用javascript进行拖拽

    2007-09-21 20:14:00
  • Python实现灰色关联分析与结果可视化的详细代码

    2023-08-03 15:01:56
  • Dreamweaver使用技巧--让css使网页图片半透明

    2010-09-05 21:13:00
  • python根据用户需求输入想爬取的内容及页数爬取图片方法详解

    2022-12-21 16:31:19
  • asp之家 网络编程 m.aspxhome.com