真实网址:https://www.php.cn/link/becbba75f70a129327afa2d6dfc4a1ac
返回的json数据:{
"errno": 0,
"msg": "success",
"data": {
"total": 36,
"pageNo": 1,
"pageSize": 36,
"plugins": [
{
"name": "零基础学习路径规划",
"description": "你好,请你给出一个主题,我将给你一份完整的学习路径规划",
"logoUrl": "https://www.php.cn/link/e23909d8468ff4942ccea268fbbcafd1",
"logoText": {
"bgImage": "",
"labelValue": "1",
"color": 0,
"labelType": 2
},
"previewUrl": "https://www.php.cn/link/1b81139cc390ee1ce67042addf1d32cd",
"appId": "UjRqa5SBZzwvbRH8I06qp19H6OZdzjCR",
"pluginSource": 3,
"useNum": "786492",
"buildType": 1,
"isOwner": null,
"packageStatus": 6,
"dialogueCount": "2030481",
"developerName": "好想出去玩2020",
"isFavorited": false
},
deepseek中输入提示词:
你是一个Python编程专家,完成一个Python脚本编写的任务,具体步骤如下:
在F盘新建一个Excel文件:baiduaiagent20240619.xlsx
请求网址:
https://www.php.cn/link/becbba75f70a129327afa2d6dfc4a1ac请求方法:
GET
状态代码:
200 OK
获取网页的响应,这是一个嵌套的json数据;
获取json数据中"data"键的值,然后获取其中"plugins"键的值,这是一个json数据,提取这个json数据中所有的键写入Excel文件的表头 ,提取这个json数据中所有键对应的值写入Excel文件的列 ;
保存Excel文件;
注意:每一步都输出信息到屏幕;
每爬取1页数据后暂停5-9秒;
需要对 JSON 数据进行预处理,将嵌套的字典和列表转换成适合写入 Excel 的格式,比如将嵌套的字典转换为字符串;
在较新的Pandas版本中,append方法已被弃用。我们应该使用pd.concat来代替。
源代码:
import requests import pandas as pd import time import json <h1>请求URL</h1><p>url = "<a href="https://www.php.cn/link/becbba75f70a129327afa2d6dfc4a1ac">https://www.php.cn/link/becbba75f70a129327afa2d6dfc4a1ac</a>"</p><h1>请求头</h1><p>headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" }</p><h1>创建Excel文件</h1><p>file_path = "F:/baiduaiagent20240619.xlsx" df = pd.DataFrame()</p><h1>发送GET请求</h1><p>response = requests.get(url, headers=headers) if response.status_code == 200: data = response.json() products = data['data']['plugins']</p><pre class="brush:php;toolbar:false"># 提取所有产品的键作为表头 headers = set() for product in products: headers.update(product.keys()) # 创建DataFrame并填充数据 for product in products: product_data = {header: json.dumps(product.get(header, ''), ensure_ascii=False) if isinstance(product.get(header), (dict, list)) else product.get(header, '') for header in headers} new_data = pd.DataFrame([product_data]) df = pd.concat([df, new_data], ignore_index=True) print("Data processed.")
else: print(f"Failed to retrieve data. Status code: {response.status_code}")
df.to_excel(file_path, index=False) print(f"Data saved to {file_path}")
time.sleep(5 + (time.time() % 5))
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号