简单的用Python实现一下JS逆向解密,采集空气质量数据

最近天气降温厉害,咱们用Python来分析一下空气质量如何~

话不多说,我们直接开始上手。

环境以及模块

环境使用

模块使用

  • import requests
  • import execjs
  • import json

requestsexecjs 都是第三方模块,需要手动安装,直接pip install 加上模块名字即可。

思路

一. 数据来源分析

  1. 明确需求: 明确采集的以及数据

    • 网站: 目标网址
    • 数据: 空气质量相关数据
  2. 抓包分析: 通过自带的者工具分析数据

    • 打开开发者工具: F12
    • 刷新网页
    • 通过关键字搜索查询对应数据包位置

二. 实现步骤

  1. 发送请求 -> 模拟浏览器对于url地址发送请求
  2. 获取数据 -> 获取服务器返回响应数据
  3. 解析数据 -> 提取具体数据内容
  4. 保存数据 -> 保存表格

代码展示

定义月份列表,用于循环请求数据。

month_list = ['202301', '202302', '202303', '202304','202305','202306','202308','202309','202310']

循环请求每个月份的数据

 month in month_list:  

发送请求

headers = {
    'User-':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) /118.0.0.0 Safari/537.36'
}
# 请求链接
# 完整的源码和视频讲解我都打包好 
# 在这个抠裙自取 708525271
url = 'https://www.aqistudy.cn/historydata/api/historyapi.php'

简单的用Python实现一下JS逆向解密,采集空气质量数据

调用JS代码获取加密参数

# 读取js文件
data_file = open('data.js', 'r', encoding='utf-8').read()
# 编译JS代码
data_code = execjs.compile(data_file)
# 参数
m0fhOhhGL = "GETDAYDATA"
oNLhNQ = {
    "city": "北京",
    "month": month
}
# 调用js代码函数
hA4Nse2cT = data_code.call('post_data', m0fhOhhGL, oNLhNQ)
print('加密的请求参数: ', hA4Nse2cT)
# 请求参数
data = {
    'hA4Nse2cT': hA4Nse2cT
}
# 发送请求
response = requests.post(url=url, data=data, headers=headers).text

解密响应加密数据

# 读取文件
response_file = open('response.js', 'r', encoding='utf-8').read()
# 编译文件
response_code = execjs.compile(response_file)
# 调用js函数
result = response_code.call('dxvERkeEvHbS', response)
print('加密的响应数据: ',response)
print('明文响应数据: ',result)

保存数据
将解密后的数据保存到Excel文件中

json_data = json.loads(result)
content_list = []
for index in json_data['result']['data']['items']:
    content_list.append(index)
    
df_data = pd.DataFrame(content_list)
df_data.to_excel(f'{month}.xlsx', index=False)

简单的用Python实现一下JS逆向解密,采集空气质量数据

效果展示

简单的用Python实现一下JS逆向解密,采集空气质量数据

简单的用Python实现一下JS逆向解密,采集空气质量数据

好了今天的内容就分享到这,下次见~

给TA打赏
共{{data.count}}人
人已打赏
后端

C语言【控制语句】

2023-11-19 1:02:00

运维笔记

MySQL系列连载之日志类型

2023-10-10 17:05:28

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索