diff --git a/laod_ai_parse_html.py b/laod_ai_parse_html.py
new file mode 100644
index 0000000..7635177
--- /dev/null
+++ b/laod_ai_parse_html.py
@@ -0,0 +1,148 @@
+# 导入所需的标准库和第三方库
+import json
+import requests
+import os
+
+# ===================== 配置项 =====================
+# API密钥(请在此处填写你的实际密钥)
+API_KEY = ""
+
+# API请求的基础URL
+API_BASE_URL = "https://api.longcat.chat/openai/v1/chat/completions"
+
+
+# ===================== 核心函数 =====================
+def parse_ai_response(response: dict) -> list | None:
+ """
+ 解析AI返回的响应数据,提取其中的JSON格式信息
+
+ Args:
+ response (dict): AI接口返回的原始响应字典
+
+ Returns:
+ list | None: 解析成功返回信息列表,失败返回None
+ """
+ try:
+ # 1. 提取AI回复的文本内容(核心路径:choices -> 第一个元素 -> message -> content)
+ content = response['choices'][0]['message']['content']
+
+ # 2. 定位并提取包裹在```json和```之间的JSON字符串
+ # 找到起始标记位置并跳过标记本身
+ start_idx = content.find('```json') + len('```json')
+ # 找到结束标记位置
+ end_idx = content.rfind('```')
+ # 提取并清理JSON字符串(去除首尾空白字符)
+ json_str = content[start_idx:end_idx].strip()
+
+ # 3. 将JSON字符串转换为Python列表(信息)
+ train_data = json.loads(json_str)
+
+ return train_data
+
+ # 捕获可能的异常:KeyError(键不存在)、IndexError(索引越界)、JSONDecodeError(JSON解析失败)
+ except (KeyError, IndexError, json.JSONDecodeError) as e:
+ print(f"❌ 解析AI响应数据时出错: {e}")
+ return None
+
+def clean_html(raw_html):
+ """
+ 清洗 HTML,移除无关标签以节省 Token
+ """
+ soup = BeautifulSoup(raw_html, 'html.parser')
+
+ # 移除 script, style, svg 等无关标签
+ for script in soup(["script", "style", "svg", "head", "iframe"]):
+ script.decompose()
+
+ # 获取纯文本或保留部分结构的 HTML (视模型能力而定,通常保留 tag 有助于定位)
+ # 这里我们保留精简后的 HTML 结构
+ return str(soup.body)[:10000] # 截取前 10000 字符防止超长
+
+def ask_ai_train_parse(role_prompt: str, text_html: str, save_path: str) -> None:
+ """
+ 调用AI接口解析网页中的信息,并将结果保存为JSON文件
+
+ Args:
+ role_prompt (str): 系统角色提示词,定义AI的行为
+ text_html (str): 包含信息的网页HTML文本
+ save_path (str): 解析结果的保存路径
+ """
+ # 1. 构建请求头(包含认证信息和内容类型)
+ headers = {
+ "Authorization": f"Bearer {API_KEY}", # API认证方式
+ "Content-Type": "application/json" # 请求体为JSON格式
+ }
+
+ # 2. 构建请求体数据
+ request_data = {
+ "model": "LongCat-Flash-Chat", # 使用的AI模型名称
+ "messages": [ # 对话消息列表
+ {"role": "system", "content": role_prompt}, # 系统角色提示
+ {"role": "user", "content": text_html} # 用户输入(网页HTML文本)
+ ],
+ "max_tokens": 1000, # 生成的最大令牌数(控制响应长度)
+ "temperature": 0 # 生成随机性(0-1,值越高越随机)
+ }
+
+ try:
+ # 3. 发送POST请求调用AI接口
+ print(f"🔄 正在调用AI接口解析信息...")
+ response = requests.post(
+ url=API_BASE_URL,
+ headers=headers,
+ json=request_data,
+ timeout=30 # 设置30秒超时,避免无限等待
+ )
+ # 检查HTTP响应状态码,非200则抛出异常
+ response.raise_for_status()
+
+ # 4. 解析AI响应数据
+ train_data = parse_ai_response(response.json())
+
+ # 5. 保存解析结果到指定文件
+ if train_data is not None:
+ with open(save_path, 'w', encoding='utf-8') as f:
+ # 格式化保存JSON数据(确保中文正常显示,缩进4个空格)
+ json.dump(train_data, f, ensure_ascii=False, indent=4)
+ print(f"✅ 信息解析完成,已保存至: {save_path}")
+ else:
+ print(f"❌ 信息解析失败,未生成文件")
+
+ # 可选:打印原始响应(方便调试)
+ # print("📝 AI接口原始响应:", json.dumps(response.json(), ensure_ascii=False, indent=2))
+
+ # 捕获网络请求相关异常
+ except requests.exceptions.RequestException as e:
+ print(f"❌ 调用AI接口时发生网络错误: {e}")
+ # 捕获文件操作相关异常
+ except IOError as e:
+ print(f"❌ 保存解析结果时发生文件错误: {e}")
+
+# ===================== 主程序执行 =====================
+if __name__ == "__main__":
+ # 定义AI的系统角色提示词(明确要求提取信息并返回JSON)
+ schema_desc = """
+ 请提取网页中的文章列表。返回格式必须是合法的 JSON,结构如下:
+ {
+ "articles": [
+ {"title": "文章标题", "publish_date": "发布日期", "author": "作者", "summary": "简短摘要"}
+ ]
+ }
+ """
+ role_prompt = f"""
+ 你是一个专业的数据解析助手。请根据以下 HTML 内容,提取相关数据。
+
+ {schema_desc}
+
+ 注意:
+ 1. 只返回纯 JSON 字符串,不要使用 markdown 格式。
+ 2. 如果找不到数据,返回空列表。
+
+ HTML 内容片段:
+ {clean_content}
+ """
+ # 待解析的网页HTML文本(替换为实际的HTML内容)
+ html_text = ""
+
+ # 调用函数执行解析并保存结果
+ ask_ai_train_parse(role_prompt, html_text, "test_parse.json")