首页 前端知识 【小白向】从网页获取json/jsonp文件,使用Python导出为json格式

【小白向】从网页获取json/jsonp文件,使用Python导出为json格式

2024-08-19 22:08:52 前端知识 前端哥 541 67 我要收藏

一、从网页直接获取数据(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处理,如果上述有错误的情况请指正

转载请注明出处或者链接地址:https://www.qianduange.cn//article/16221.html
标签
chrome
评论
发布的文章

安装Nodejs后,npm无法使用

2024-11-30 11:11:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!