如何用Python批量抓取并合并网站的JSON响应数据
批量获取JSON并合并为数组的Python实现
以下是可直接使用的Python脚本,实现从连续数字结尾的URL批量获取JSON响应并合并为一个数组:
import requests import json # 配置参数 base_url = "http://example.com/" # 替换为你的实际基础URL start_num = 111 end_num = 200 # 初始化存储合并数据的数组 combined_data = [] # 遍历数字范围,批量请求并处理数据 for num in range(start_num, end_num + 1): target_url = f"{base_url}{num}" try: # 发送GET请求 resp = requests.get(target_url) resp.raise_for_status() # 捕获HTTP错误(如404、500) # 解析JSON并添加到数组 json_data = resp.json() combined_data.append(json_data) print(f"已处理 {target_url}") except requests.exceptions.RequestException as e: print(f"请求 {target_url} 失败: {str(e)}") except json.JSONDecodeError: print(f"{target_url} 返回的内容不是有效JSON") # 将合并后的数组保存到本地文件 with open("combined_json_array.json", "w", encoding="utf-8") as f: json.dump(combined_data, f, ensure_ascii=False, indent=4) print("所有数据已合并完成,结果保存到 combined_json_array.json")
关键说明
- 务必替换
base_url为你的实际基础地址 - 脚本包含异常处理,遇到请求失败或无效JSON时会打印错误信息并继续执行
- 保存的JSON文件使用UTF-8编码,支持中文等非ASCII字符,且格式化缩进便于阅读
- 如果需要自定义请求头(如添加User-Agent),可在
requests.get()中加入headers参数,示例:headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"} resp = requests.get(target_url, headers=headers)
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

