一、从网页直接获取数据(json文件/jsonp文件)
1.选择需要获取Json数据的网页
2.以edge为例,按F12打开开发者模式
如下图所示:
3.打开网络模块,此时开发者界面可能为空白状态
4.保持开发者界面存在的情况下,刷新(F5)需要获取数据的网页,此时会加载网页中的一些文件
5.筛选JS文件,可以直接找到需要的内容,右键即可保存为JSON文件。(如果这一步可以完成,恭喜后续就可以不用看了!)
*6.如果无法找到的情况下,试试搜索(Ctrl+F)查询相关的数据,通常是如下图的数据形式。
有这种情况下通常为jsonp格式(需要了解可以自行百度),但是我们通常需要保存为json格式,接下来就需要进行第二部分的操作
二、jsonp格式转换为json格式并保存
1.先将jsonp文件url复制
此时我们可以将url用浏览器打开,可以看到是以jQuery开头的数据:
2.使用Python对数据进行处理
import requests
import re
import json
# 替换为你的实际JSONP数据的URL
jsonp_url = ('https://.....')
# 获取JSONP数据
response = requests.get(jsonp_url)
jsonp_data = response.text
# 移除JSONP包装
json_str = re.sub(r'^jQuery.*?\(', '', jsonp_data).rstrip(')')
# 解析JSON字符串为Python字典
data = json.loads(json_str)
# 将xxx(以对象的形式存在)的数据转换为列表,并过滤掉空的对象
result_list = [v for v in data['data']['xxx'].values() if v]
# 格式化输出为JSON字符串
json_output = json.dumps(result_list , ensure_ascii=False, indent=2)
# 可以观察输出结果
print(json_output)
file_path = 'result.json' # 定义要保存的文件名和路径
with open(file_path, 'w', encoding='utf-8') as file:
json.dump(result_list , file, ensure_ascii=False, indent=2)
print(f"Data has been successfully saved to {file_path}")
注意:
result_list = [v for v in data['data']['xxx'].values() if v]
xxx是在jsonp中的对象,例如 rise:
最后就能获得json格式的文件了!本人实际上并不会Js,但是需要获取数据,因此主要还是使用Python处理,如果上述有错误的情况请指正