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

Python抓取并分析空气质量数据:编码与解密过程,
本文介绍如何使用Python通过抓包和模拟浏览器请求,获取并解析空气质量数据,涉及第三方模块如requests和execjs的使用,以及数据加密和解密的过程,最后提供Python学习资源链接。

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

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

环境以及模块

===

环境使用

  • Python 3.8

  • Pycharm

  • nodejs

模块使用

  • import requests

  • import execjs

  • import json

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

思路流程

一. 数据来源分析

  1. 明确需求: 明确采集的网站以及数据
  • 网站: 目标网址

  • 数据: 空气质量相关数据

  1. 抓包分析: 通过浏览器自带的开发者工具分析数据
  • 打开开发者工具: F12

  • 刷新网页

  • 通过关键字搜索查询对应数据包位置

二. 代码实现步骤

  1. 发送请求 -> 模拟浏览器对于url地址发送请求

  2. 获取数据 -> 获取服务器返回响应数据

  3. 解析数据 -> 提取具体数据内容

  4. 保存数据 -> 保存表格文件中

===

代码展示

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

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

循环请求每个月份的数据

for month in month_list:  

发送请求

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}
# 请求链接
url = 'https://www.aqistudy.cn/historydata/api/historyapi.php'

调用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学习资料,包含面试题、简历资料等具体看下方。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述
若有侵权,请联系删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值