From 0718d233f63aed659f7b35a81ea9ad5acd723611 Mon Sep 17 00:00:00 2001 From: zzx Date: Fri, 10 Oct 2025 13:49:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(ai=5Fseo):=20=E7=A7=BB=E9=99=A4=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=89=93=E5=8D=B0=E5=B9=B6=E4=BC=98=E5=8C=96=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 kimi.py 中增加对 children 元素的异常处理,避免索引越界;在 run.py 中补充 json 模块导入,并增加调试日志输出。 --- run.py | 2 ++ spiders/ai_seo/kimi.py | 5 ++++- utils/ai_seo_api_utils.py | 2 -- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/run.py b/run.py index 47e8dbd..d8647d0 100644 --- a/run.py +++ b/run.py @@ -1,5 +1,6 @@ # coding=utf-8 import asyncio +import json import uuid from dataclasses import asdict from datetime import datetime, timedelta, time @@ -169,6 +170,7 @@ async def ai_seo_job(browser, platform_ids, time_range, job_id, type_name, run_i return result = await AiSeoApis.submit_task(answer_data) + logger.debug(json.dumps(answer_data, ensure_ascii=False)) logger.info(f"任务提交成功: id: {task_data['id']}") spider_pool.pop(run_id, None) diff --git a/spiders/ai_seo/kimi.py b/spiders/ai_seo/kimi.py index 2c0b8ee..da303e3 100644 --- a/spiders/ai_seo/kimi.py +++ b/spiders/ai_seo/kimi.py @@ -111,7 +111,10 @@ class KimiSpider(AbstractAiSeoSpider): children = await search_element.locator("xpath=./child::*").all() result.title = await children[1].inner_text() - result.body = await children[2].inner_text() + try: + result.body = await children[2].inner_text() + except IndexError: + result.body = '' # 获取信源信息元素 result_host_elements = await children[0].locator("xpath=./child::*").all() diff --git a/utils/ai_seo_api_utils.py b/utils/ai_seo_api_utils.py index 87b9b6a..9cd9621 100644 --- a/utils/ai_seo_api_utils.py +++ b/utils/ai_seo_api_utils.py @@ -1,6 +1,5 @@ # coding=utf-8 import datetime -import json import os import httpx @@ -86,7 +85,6 @@ class AiSeoApis: uri = '/api/third/submitProjectTask' url = AiSeoApis.build_full_url(uri) async with httpx.AsyncClient() as client: - print("json_data",json.dumps(json_data)) response = await client.post(url, json=json_data, timeout=120) json_result = response.json() if not json_result['code'] == 0: