From 9e2967cdb32686b3006d39858c25a2ee5971514c Mon Sep 17 00:00:00 2001 From: zhangwen Date: Fri, 8 May 2026 14:25:11 +0800 Subject: [PATCH] first commit --- deep/__pycache__/ai_seo.cpython-310.pyc | Bin 0 -> 2131 bytes deep/__pycache__/ds_test.cpython-310.pyc | Bin 0 -> 1686 bytes deep/ai_seo.py | 79 +++ deep/deepseek_work.py | 494 ++++++++++++++++ deep/ds_test.py | 71 +++ deep/js_data/ds.js | 113 ++++ deep/js_data/js_runner.js | 31 + deep/js_data/sha3_wasm_bg.wasm | Bin 0 -> 26612 bytes deepseek.log | 96 ++++ deepseekstart.py | 494 ++++++++++++++++ js_data/ds.js | 113 ++++ js_data/js_runner.js | 31 + js_data/sha3_wasm_bg.wasm | Bin 0 -> 26612 bytes kimi_tokens.db | Bin 0 -> 24576 bytes kimistart.py | 510 +++++++++++++++++ login/kimi_auto_login.py | 261 +++++++++ login/mita_login.py | 472 ++++++++++++++++ login/set_status_active.py | 47 ++ mitastart.py | 568 +++++++++++++++++++ requirements.txt | 18 + start.bat | 98 ++++ tongyistart.py | 276 +++++++++ utlit/__pycache__/encrpty.cpython-310.pyc | Bin 0 -> 3046 bytes utlit/__pycache__/retry.cpython-310.pyc | Bin 0 -> 1030 bytes utlit/__pycache__/update_db.cpython-310.pyc | Bin 0 -> 3869 bytes utlit/__pycache__/utils.cpython-310.pyc | Bin 0 -> 3147 bytes utlit/encrpty.py | 71 +++ utlit/msg_push.py | 95 ++++ utlit/retry.py | 32 ++ utlit/update_db.py | 146 +++++ utlit/utils.py | 110 ++++ wxyy.log | 668 ++++++++++++++++++++++ wxyystart.py | 270 +++++++++ yuanbao.2026-05-07_18-03-48_868163.log.zip | Bin 0 -> 424 bytes yuanbao.log | 844 ++++++++++++++++++++++++++++ yuanbao.py | 462 +++++++++++++++ 36 files changed, 6470 insertions(+) create mode 100644 deep/__pycache__/ai_seo.cpython-310.pyc create mode 100644 deep/__pycache__/ds_test.cpython-310.pyc create mode 100644 deep/ai_seo.py create mode 100644 deep/deepseek_work.py create mode 100644 deep/ds_test.py create mode 100644 deep/js_data/ds.js create mode 100644 deep/js_data/js_runner.js create mode 100644 deep/js_data/sha3_wasm_bg.wasm create mode 100644 deepseek.log create mode 100644 deepseekstart.py create mode 100644 js_data/ds.js create mode 100644 js_data/js_runner.js create mode 100644 js_data/sha3_wasm_bg.wasm create mode 100644 kimi_tokens.db create mode 100644 kimistart.py create mode 100644 login/kimi_auto_login.py create mode 100644 login/mita_login.py create mode 100644 login/set_status_active.py create mode 100644 mitastart.py create mode 100644 requirements.txt create mode 100644 start.bat create mode 100644 tongyistart.py create mode 100644 utlit/__pycache__/encrpty.cpython-310.pyc create mode 100644 utlit/__pycache__/retry.cpython-310.pyc create mode 100644 utlit/__pycache__/update_db.cpython-310.pyc create mode 100644 utlit/__pycache__/utils.cpython-310.pyc create mode 100644 utlit/encrpty.py create mode 100644 utlit/msg_push.py create mode 100644 utlit/retry.py create mode 100644 utlit/update_db.py create mode 100644 utlit/utils.py create mode 100644 wxyy.log create mode 100644 wxyystart.py create mode 100644 yuanbao.2026-05-07_18-03-48_868163.log.zip create mode 100644 yuanbao.log create mode 100644 yuanbao.py diff --git a/deep/__pycache__/ai_seo.cpython-310.pyc b/deep/__pycache__/ai_seo.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..671e91d1428edced8a54e7f42da0a51bcae68304 GIT binary patch literal 2131 zcmZ`)&5smC6tAl8nd#~ITF8p1pra9!i7xSIkQhLT2a`PrYUq%3dZ%ifhMw-Rs>XFT zOJZ1}s}V5@LIRRqE~u!h5s4s%lYfIr9lYSqE+_6>^u3y8vqM66-m71|S6}_!`&DO^ zicjGA=kH4VSAme**xC5F(Afi`4uax@(}Z+rKszj86#Fc30tZ?raXW6{g3aZ*6C}t9 z`a0oxUN}K`VUEqwAa5-mFM_3LEd|aFkcNK;RwfN*iagR$Gl`TkxmGL^KG~qg1EbJ! zM>Hu8TYC^YAg_X`$3e})$&R|xgO+V4$A~5ibe1eqSl{X0fB}9Tp4E@PU;gyl)uoS? z=dTRTUb}Pl>R|rY!MUZC%U`bCxV(Dn9N@vym0|bp&CiyvUt9h2hr!89|NefXe*Yl# z<)!PZzbxMV@VIXmT|RYuaOUS-7UMycjym1?#6*34hr2iD2WPIrpuzmtgWrByIes1R z-J72b=da#6y?p-SaQ*{(*frmU)7QfVwhsX$a?q%Tzox@QaPG|CH2uGCqFc+eWCMB|+-M-n>%+mLT)ZzLfd00WA@=6}{ zsVo9)f{Z+vhCLukf)XU4oCNGGNC%V!3tW*CdG73nv;+l&exqSmfF;L@lX3PDkJXnWg z67M1T6skI^r%~DZc?J>IoNS=N%fq;E-)M>TZ!5qaK~7lDRF)+Vuc>EY%*!D6Yl?ZU z2bA%EGFvQ(%1q*zhG$CaKUkq8p5JaQcOt?ciskxndz`W1(`_+ZzIwZdjCutltdJ99 PxEJ#%tBz6j+&KLo{ZuZV literal 0 HcmV?d00001 diff --git a/deep/__pycache__/ds_test.cpython-310.pyc b/deep/__pycache__/ds_test.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ff4398ff8332a3133a916451cb57ab97da5edc14 GIT binary patch literal 1686 zcma)6&2Jk;6rY*>^m^?$X-f-5Xq8JbR8?cQaUG#jL_r8u;Ug7MSCLj@&p6&>y}O!S z*NMA^NU6ky-Z=FGB}XI<`~gV)Kjw-Msf5I}Ev4m+6RI9KFr)Y8&Fp(KZ+^cwn^Y^> z&v27h`3#$7bL<#9&Q7q`?pS_}&+^(X#*pF4RO+W5LB?qL(H3Y~ixb8JF^pp_f|TZc zSsKx7aAeYGJrQBvAIMU-Pos#(>s;y?jdJO*u-6N_!zkaDCBBu0f(JC0Rvr#`GR(Vx z*~?Y|OQHE8NOl0Kzy&F^LNAQMWca>0v2(;oVeb-*a=by9R-ko~YkPWO?_&nI6;^KK z=AKm`z{3VSO1qdDcg#ttC~Y`<<$W}9z;c@%WBUGOm4%FQ}XpeU89z6WkTL!$n-|yb`4l(x*e%|$1c5Wl{ z-t`pnfBy2_!Nc!=yZ3{4Yd+bWU-CLh5}oztX`GF?fO$L|bhs#%lbFLY7a|e!?=N{- zE+*4+>ZWh2jXno5g#o7vQz=U+MT&19vh_jk8)=kKCUsQ<*XxEf!Z;n~QqTETE~{Od z=0ji=*o0M~2$WiP!~_OwOm0m+9=j^i<6B|QnKvd&UY$siY)WIA*7#Hy-=tBB`KU+a>w%!7<$6sTsR(1JtZdjxMbhP2CN)4w>Kj=SOM?vuDXhRn zrKKu03OiC)x0IIPSrXmk(oCt~u!WiB4APbcIESfp1c#f%T{v4B>dKiceYDl(X&%DH z${F&lSA?c=(v|uT+(b!zn4$p3ZyzG3@|2o7N@p~u67wICI0KGP-?_T9HtvW0VG?W& z)@T@v60sR%ITiUD<2+qsS&;KAKbLOHxh{>mL7I$$5j?g)VWjBFE`uUfg8%L2Q^(e^ ziS476IjmM3Oh^sun*01stYh+=XfCeex3IlKUWhtuA?+X-&@c`HX>DYIN_6akaae&+ zdgIxwPn*H?;dj>0sZmz1LXs<-Z+=3v{#OhBl}?*;+UQcc*lRJ`XtBjkr$uR#F3{!$ z-fAr_w$C@(=i3*1&E{f*F0?K!u;zs}@ANq9^;$juIBj&A?bgL^>%#ekOYH`SI2P_S z2#OT&-!KdJ&ARnJSg2z`Afi4ePQW0JDRl}IR4)8|#7SjpP)aXvAJYL30`a=~0ATdO zNKM~Rai^zo9hz~eFj3$f{`|^{h9iuQeu^p%N|I+{PK7F-Ur}$Xo$U7p2^&WIvU()h zHBdItr8;r+$3Wx@LKH>hZ=#cD#2|kWlRPCBc|vUGv3<4%p04I<;PH}nWtmUhlK#g( Dn9j-w literal 0 HcmV?d00001 diff --git a/deep/ai_seo.py b/deep/ai_seo.py new file mode 100644 index 0000000..a4e643f --- /dev/null +++ b/deep/ai_seo.py @@ -0,0 +1,79 @@ +# coding=utf-8 +from dataclasses import dataclass, field +import os + +from datetime import datetime +def convert_timestamp(timestamp): + """ + 自动识别时间戳是秒级还是毫秒级,并转换为 datetime 对象。 + + 参数: + timestamp -- 时间戳(整数或浮点数) + + 返回: + datetime 对象 + """ + # 如果时间戳大于 1e10,认为是毫秒级时间戳 + if timestamp > 1e10: + timestamp /= 1000.0 # 转换为秒级时间戳 + return datetime.fromtimestamp(timestamp) +@dataclass +class AiSearchResult: + + """ + ai搜索结果对象 + """ + + # 标题 + title: str = '' + # url + url: str = '' + # 来源 + host_name: str = '' + # 描述 + body: str = '' + # 发布时间 + publish_time: str|int|float = '' + #是否被ai引用 + is_referenced: str = '0' + #情感倾向" 1- 中立 2- 正面 3- 负面 + sentiment_type = 0 + #情感类型 + type = 0 + def __post_init__(self): + if isinstance(self.publish_time, float): + self.publish_time = int(self.publish_time) + + if isinstance(self.publish_time, int): + self.publish_time = convert_timestamp(self.publish_time).strftime('%Y-%m-%d') + + if isinstance(self.publish_time, str): + try: + now = datetime.now() + publish = datetime.strptime(self.publish_time, f'%m-%d') + except ValueError: + return + self.publish_time = publish.strftime(f'{now.year}-%m-%d') + + +@dataclass +class AiAnswer: + """ + ai回答对象 + """ + + platform_id: int + platform_name: str + prompt: str + keyword: str + answer: str = '' + search_result: list[AiSearchResult] = field(default_factory=list) + screenshot_file: str = '' + # 状态 + run_status: bool = True + + def __post_init__(self): + self.screenshot_file = os.path.abspath(self.screenshot_file) + + + diff --git a/deep/deepseek_work.py b/deep/deepseek_work.py new file mode 100644 index 0000000..2c4166b --- /dev/null +++ b/deep/deepseek_work.py @@ -0,0 +1,494 @@ +# -*- coding: utf-8 -*- +""" +DeepSeek Web API 单线程版本 +- 参考 kimistart.py 的类结构 +- 使用 loguru 日志系统 +- 单线程循环处理任务 +""" + +import base64 +import json +import os +import pathlib +import random +import re +import string +import time +from datetime import datetime +from json import JSONDecodeError +from typing import Dict, List, Optional, Tuple + +import requests +from glom import glom +from loguru import logger + +from ai_seo import AiSearchResult +from ds_test import calc_pow_with_node +from utlit.retry import retry + +# 配置日志 +cwd = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +logger.add(f"{cwd}/deepseek.log", + level="DEBUG", + rotation="00:00", + retention="3 days", + compression="zip", + backtrace=True) + +# 常量配置 +USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36" +ORIGIN = "https://chat.deepseek.com" +REFERER = "https://chat.deepseek.com/" + +BASE = "https://chat.deepseek.com" +SESSION_CREATE = f"{BASE}/api/v0/chat_session/create" +POW_CHALLENGE = f"{BASE}/api/v0/chat/create_pow_challenge" +CHAT_COMPLETION = f"{BASE}/api/v0/chat/completion" + +TASK_URL = 'https://api.granking.com' +TASK_HOST = 'api.granking.com' + + +class ToolsLoad: + """工具类:处理API请求和会话管理""" + + @retry('获取deepseek cookie', 0, time_sleep=30) + def get_cookie(self, platform_id="1"): + url = "http://granking-api.neicela.com/api/third/getOneSpiderSession?platform_id=" + platform_id + "&app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4" + payload = {} + headers = { + 'Authorization': 'Bearer ', + 'User-Agent': 'Apifox/1.0.0 (http://apifox.com)' + } + response = requests.request("GET", url, headers=headers, data=payload).json() + if response.get("data", []) == []: + logger.warning(f'没有获取到cookie: {response}') + return False + logger.info(f'成功获取到cookie: {response.get("data")}') + return response.get("data") + + @retry('上传cookie状态', 5) + def update_session(self, id, reload_time, status="4"): + url = "http://granking-api.neicela.com/api/third/updateSpiderSession?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4" + payload = json.dumps({ + "id": id, + "status": status, + "reload_time": reload_time + }) + headers = { + 'lang': '{{lang}}', + 'Authorization': 'Bearer ', + 'User-Agent': 'Apifox/1.0.0 (http://apifox.com)', + 'Content-Type': 'application/json' + } + response = requests.request("POST", url, headers=headers, data=payload) + logger.info(f'更新session状态: {response.text}') + return response.text + + @retry('提交结果', 5) + def post_task(self, data): + url = f"{TASK_URL}/api/third/submitProjectTask" + headers = { + 'User-Agent': 'Apifox/1.0.0 (http://apifox.com)', + 'Content-Type': 'application/json', + 'Accept': '*/*', + 'Host': TASK_HOST, + 'Connection': 'keep-alive', + 'Cookie': 'lang=zh-cn' + } + resp = requests.post(url, headers=headers, json=data, timeout=(5, 300)) + resp.raise_for_status() + return resp.json() + + @retry('获取task消息', 5) + def get_task(self): + url = f"{TASK_URL}/api/third/getTask?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4&platform_ids=1" + resp = requests.get(url, timeout=(5, 20)) + resp.raise_for_status() + return resp.json() + + @retry('更新任务状态', 5) + def update_task_status(self, task_id, status): + url = f"{TASK_URL}/api/third/updateTask?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4" + payload = json.dumps({ + "task_id": task_id, + "status": status, + }) + headers = { + 'User-Agent': 'Apifox/1.0.0 (http://apifox.com)', + 'Content-Type': 'application/json', + 'Accept': '*/*', + 'Host': 'xunliu-api.ecps.com.cn', + 'Connection': 'keep-alive', + 'Cookie': 'lang=zh-cn' + } + response = requests.request("POST", url, headers=headers, data=payload) + return response.json() + + def get_leim(self): + url = 'https://hif-leim.deepseek.com/query' + resp = requests.get(url) + return resp.json().get("data").get("biz_data").get("value") + + +class DeepSeekChatClient: + """DeepSeek聊天客户端""" + + def __init__(self): + self.base_path = pathlib.Path(__file__).resolve().parent + self.js_data_path = self.base_path / "js_data" + self.tools = ToolsLoad() + + def default_headers(self, extra: Optional[Dict[str, str]] = None) -> Dict[str, str]: + h = { + "Authorization": '', + "Content-Type": "application/json", + "Origin": ORIGIN, + "Referer": REFERER, + "User-Agent": USER_AGENT, + "Accept": "*/*", + } + if extra: + h.update(extra) + return h + + def create_chat_session(self, cookie) -> dict: + """创建聊天会话""" + r = requests.post(SESSION_CREATE, headers=self.default_headers({"Authorization": cookie}), json={}, timeout=30) + r.raise_for_status() + data = r.json() + # 兼容多种结构 + if isinstance(data, dict) and "id" in data and isinstance(data["id"], str): + return {"id": data["id"]} + if isinstance(data.get("data"), dict): + if isinstance(data["data"].get("id"), str): + return {"id": data["data"]["id"]} + if isinstance(data["data"].get("data"), dict) and isinstance(data["data"]["data"].get("id"), str): + return {"id": data["data"]["data"]["id"]} + biz_data = data["data"].get("biz_data") + if isinstance(biz_data, dict) and isinstance(biz_data.get("id"), str): + return biz_data + return biz_data + raise ValueError(f"无法解析 chat_session_id:{data}") + + def fetch_pow_challenge(self, cookie, target_path="/api/v0/chat/completion") -> dict: + """获取PoW挑战""" + r = requests.post( + POW_CHALLENGE, + headers=self.default_headers({"Authorization": cookie}), + json={"target_path": target_path}, + timeout=30, + ) + r.raise_for_status() + data = r.json() + ch = data.get("data", {}).get("biz_data", {}).get("challenge") + if not ch: + raise RuntimeError(f"挑战返回结构异常:{data}") + return ch + + def solve_answer_fixed_sig(self, challenge_obj: dict) -> int: + """求解PoW答案""" + logger.debug(f"开始求解PoW: {challenge_obj}") + ch = challenge_obj["challenge"] + salt = challenge_obj["salt"] + lim = int(challenge_obj.get("difficulty", 200000)) + expire_at = challenge_obj["expire_at"] + + # 指向 js_data 文件夹中的文件 + node_runner = str(self.js_data_path / "js_runner.js") + wasm_file = str(self.js_data_path / "sha3_wasm_bg.wasm") + + res = calc_pow_with_node( + node_runner_path=node_runner, + wasm_path=wasm_file, + algorithm="DeepSeekHashV1", + challenge=ch, + salt=salt, + difficulty=lim, + expire_at=expire_at, + ) + logger.info(f"PoW求解结果: {res}") + return res.get("answer") + + def pow_to_header_value(self, algorithm: str, challenge: str, salt: str, answer: int, signature: str, target_path: str) -> str: + """组装x-ds-pow-response头""" + payload = { + 'algorithm': algorithm, + 'challenge': challenge, + 'salt': salt, + 'answer': answer, + 'signature': signature, + 'target_path': target_path + } + raw = json.dumps(payload, ensure_ascii=False).encode("utf-8") + return base64.b64encode(raw).decode("ascii") + + def ensure_valid_challenge(self, cookie) -> dict: + """获取未过期的挑战""" + while True: + ch = self.fetch_pow_challenge(cookie, "/api/v0/chat/completion") + now_ms = int(time.time() * 1000) + expire_at = int(ch.get("expire_at", now_ms + 1)) + if expire_at - now_ms > 5000: + return ch + time.sleep(0.2) + + def sse_chat_completion( + self, + chat_session_id: dict, + prompt: str, + cookie: str, + thinking_enabled: bool = False, + search_enabled: bool = True, + parent_message_id: Optional[str] = None, + client_stream_id: Optional[str] = None, + ) -> Tuple[List[Dict], str, str]: + """SSE聊天请求,返回搜索结果、回答、思考内容""" + # 1) 取挑战 + ch = self.ensure_valid_challenge(cookie) + algorithm = ch.get("algorithm", "DeepSeekHashV1") + challenge = ch["challenge"] + salt = ch["salt"] + signature = ch["signature"] + target_path = ch.get("target_path", "/api/v0/chat/completion") + + # 2) 求解answer + answer = self.solve_answer_fixed_sig(ch) + logger.info(f"PoW answer: {answer}") + + # 3) 组装x-ds-pow-response + xpow = self.pow_to_header_value( + algorithm=algorithm, + challenge=challenge, + salt=salt, + answer=answer, + signature=signature, + target_path=target_path, + ) + + # 4) 构建请求头 + h = self.default_headers({"x-ds-pow-response": xpow, "Authorization": cookie}) + h["x-hif-leim"] = self.tools.get_leim() + + if not client_stream_id: + client_stream_id = f"{time.strftime('%Y%m%d')}" + + payload = { + "chat_session_id": chat_session_id.get("id"), + "parent_message_id": parent_message_id, + "prompt": prompt, + "ref_file_ids": [], + "thinking_enabled": thinking_enabled, + "search_enabled": search_enabled, + "client_stream_id": client_stream_id + "-3e910d848b6140d5", + } + + # 5) 发送SSE请求 + with requests.post( + CHAT_COMPLETION, headers=h, json=payload, stream=True, timeout=300 + ) as resp: + resp.raise_for_status() + response_text = '' + thinking_text = '' + search_result_lists = list() + start_content = False + start_thinking = False + + for raw in resp.iter_lines(decode_unicode=True): + if not raw: + continue + line = raw.strip() + print(line,end=' ') + data_str = line[6:] if line.startswith("data: ") else line + + if data_str == "[DONE]": + logger.info("SSE流结束") + break + + try: + data = json.loads(data_str) + if glom(data, 'v.0.v', default='') == 'TIMEOUT': + logger.warning("DeepSeek服务器繁忙") + except JSONDecodeError: + continue + + # 获取搜索结果 + if data.get('p', '') == 'response/search_results' and isinstance(data.get('v', ''), list): + logger.info("获取到联网搜索结果") + search_result_list = data.get('v', []) + search_result_lists.extend(search_result_list) + + # 深度思考数据 + if data.get('p', '') == 'response/thinking_content': + start_thinking = True + if data.get('p', '') == 'response/thinking_elapsed_secs': + start_thinking = False + if start_thinking: + value = data.get('v', None) + if isinstance(value, dict): + continue + if value is None: + value = glom(data, 'choices.0.delta.content', default="") + thinking_text = thinking_text + str(value) + + # 回复数据 + if data.get('p', '') == 'response/content': + start_content = True + if start_content: + value = data.get('v', None) + if isinstance(value, dict): + continue + if value is None: + value = glom(data, 'choices.0.delta.content', default="") + response_text = response_text + str(value) + + # 处理引用 + citation = list() + citations = re.findall(r'citation:(\d+)', response_text) + if citations: + citation = list(set(citations)) + + # 构建搜索结果列表 + ai_search_result_list = [] + for index, search_result in enumerate(search_result_lists): + dic = { + "url": search_result.get('url', ''), + "title": search_result.get('title', ''), + "body": search_result.get('snippet', ''), + "publish_time": search_result.get('published_at', ''), + "host_name": search_result.get('site_name', '未知'), + "is_referenced": "1" if str(index + 1) in citation else "0" + } + if dic.get("title") and dic.get("url"): + ai_search_result_list.append(dic) + + return ai_search_result_list, response_text, thinking_text + + +class Start: + """主启动类""" + + def __init__(self): + self.tools = ToolsLoad() + self.client = DeepSeekChatClient() + + @retry('处理消息任务', for_work=10) + def process_task(self, task): + """处理单个任务""" + task_id = task.get("id", "") + keyword = task.get("keyword", "") + platform_id = task.get("platform_id", "") + brand = task.get("brand", "") + + logger.info(f"开始处理任务: {keyword} | task_id: {task_id}") + + # 获取cookie + response = self.tools.get_cookie(platform_id="1") + if not response: + logger.warning(f'cookie获取失败') + return False + + cookie = response.get("cookie") + cookie_id = response.get("id") + + if not cookie: + logger.warning(f'cookie为空') + return False + + try: + # 创建会话 + logger.info("创建chat_session...") + session_id = self.client.create_chat_session(cookie) + logger.info(f"新建chat_session_id: {session_id}") + + # 发送聊天请求 + logger.info(f"发送prompt: {keyword}") + ai_search_result_list, answer, thinking = self.client.sse_chat_completion( + chat_session_id=session_id, + prompt=keyword, + cookie=cookie, + thinking_enabled=True, + search_enabled=True, + ) + if 'answer' == '': + print('异常结果',ai_search_result_list, answer, thinking) + return False + + # 构建结果 + now_dt = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + result = { + 'app_id': 'aa65700299848d6f21b969dbc9f6cf7c', + 'secret': '5588071d36f0bc61af849c311a03f2c4', + 'platform_id': platform_id, + 'platform_name': 'deepseek', + 'prompt': keyword, + 'keyword': brand, + 'answer': answer, + 'search_result': ai_search_result_list, + 'screenshot_file': '', + 'run_status': True, + 'task_id': task_id, + 'rank': 0, + 'start_time': now_dt, + 'end_time': now_dt, + 'screenshot_url': '', + 'words': [] + } + + # 提交结果 + post_resp = self.tools.post_task(result) + print('\n') + print('\n') + print(result) + logger.info(f"任务 {task_id} 提交返回: {post_resp}") + return result + + except Exception as e: + error_msg = str(e) + logger.error(f"任务 {task_id} 处理异常: {error_msg}") + + # token失效处理 + if "Authorization Failed (invalid token)" in error_msg: + self.tools.update_session(cookie_id, "full_datetime", "2") + + # 更新任务状态为失败 + if task_id: + self.tools.update_task_status(task_id, "4") + raise + + @retry('主运行窗口', for_work=1) + def start_task_msg(self): + """获取并处理任务""" + task_resp = self.tools.get_task() + # task_resp = {'code': 0, 'msg': 'success', 'data': {'id': 'e07a6ffddf62a61c8072a0d2d518a655', 'project_id': '019b97b0da35706a9f5aba211a201226', 'keyword_id': '019b97bc96c573b1825716bc35c78a24', 'keyword': '国泰基金怎么样', 'brand': '国泰基金', 'platform_id': '4', 'gather_date': '2026-05-07', 'gather_time': '06:00', 'gather_filter': '2026-05-07 00:30:01', 'status': 2, 'retry_count': 1, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-07 09:06:04', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-07 00:30:10', 'update_time': '2026-05-07 09:06:04', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1}} + + logger.info(f'获取任务响应: {task_resp}') + + if not task_resp: + logger.info("get_task 未返回有效数据,等待后重试") + time.sleep(5) + return True + + task_data = task_resp.get("data", False) + if not task_data: + logger.info("没有任务数据,等待下一轮") + time.sleep(30) + return True + self.process_task(task_data) + + + return True + + def run(self): + """主循环""" + logger.info("DeepSeek单线程爬虫启动") + while True: + try: + self.start_task_msg() + except Exception as e: + logger.error(f"主循环异常: {e}") + time.sleep(10) + + +if __name__ == "__main__": + Start().run() \ No newline at end of file diff --git a/deep/ds_test.py b/deep/ds_test.py new file mode 100644 index 0000000..ba1d1d8 --- /dev/null +++ b/deep/ds_test.py @@ -0,0 +1,71 @@ +# ds_call.py +import json +import subprocess +import pathlib +import time + +def calc_pow_with_node( + node_runner_path: str, + wasm_path: str, + algorithm: str, + challenge: str, + salt: str, + difficulty: int, + expire_at: int, + timeout: int = 120, +): + """ + 通过 Node 的 runner 调 ds.js + wasm,返回 {"ok": bool, "answer": number|None, "error"?: str} + """ + payload = { + "wasmPath": wasm_path, + "algorithm": algorithm, + "challenge": challenge, + "salt": salt, + "difficulty": difficulty, + "expireAt": expire_at, + } + print("pload",payload) + proc = subprocess.run( + ["node", node_runner_path], + input=json.dumps(payload), + text=True, + capture_output=True, + timeout=timeout, + cwd=str(pathlib.Path(node_runner_path).resolve().parent), + ) + out = proc.stdout.strip() + if proc.returncode != 0: + # Node 可能也输出了 JSON,尽量解析 + try: + data = json.loads(out or "{}") + except Exception: + data = {"ok": False, "error": f"node exited {proc.returncode}: {proc.stderr}"} + return data + try: + return json.loads(out) + except Exception as e: + return {"ok": False, "error": f"invalid JSON from node: {e}", "_raw": out} + + +if __name__ == "__main__": + base = pathlib.Path(__file__).resolve().parent + js_data_path = base / "js_data" + + # 1) 指向 js_data 文件夹中的 Node 小封装 + node_runner = str(js_data_path / "js_runner.js") + + # 2) 指向 js_data 文件夹中的 wasm 文件 + wasm_file = str(js_data_path / "sha3_wasm_bg.wasm") + + # 3) 用你给的那组参数 + res = calc_pow_with_node( + node_runner_path=node_runner, + wasm_path=wasm_file, + algorithm="DeepSeekHashV1", + challenge="b9eea2caa6f7da27d6bb7aa3a1a34e77669029095f3362a1781d349ebfedff7f", + salt="a2b3975c7401892ea34d", + difficulty=144000, + expire_at=1760945235071, + ) + print(res) diff --git a/deep/js_data/ds.js b/deep/js_data/ds.js new file mode 100644 index 0000000..e63aeb5 --- /dev/null +++ b/deep/js_data/ds.js @@ -0,0 +1,113 @@ +// ds.js —— 无需 fs-extra 的版本(CommonJS) +const fs = require('fs').promises; // 用内置 fs.promises + +class DeepSeekHash { + constructor() { + this.wasmInstance = null; + this.offset = 0; + this.cachedUint8Memory = null; + this.cachedTextEncoder = new TextEncoder(); + this._lastBufferRef = null; // 记录上次的 buffer,内存增长时刷新 + } + + _refreshIfNeeded() { + const buf = this.wasmInstance.memory.buffer; + if (this._lastBufferRef !== buf) { + this.cachedUint8Memory = new Uint8Array(buf); + this._lastBufferRef = buf; + } + } + + getCachedUint8Memory() { + if (!this.wasmInstance || !this.wasmInstance.memory) { + throw new Error('WASM instance not initialized'); + } + this._refreshIfNeeded(); + return this.cachedUint8Memory; + } + + encodeString(text, allocate, reallocate) { + if (!reallocate) { + const encoded = this.cachedTextEncoder.encode(text); + const ptr = allocate(encoded.length, 1) >>> 0; + const memory = this.getCachedUint8Memory(); + memory.subarray(ptr, ptr + encoded.length).set(encoded); + this.offset = encoded.length; + return ptr; + } + const strLength = text.length; + let ptr = allocate(strLength, 1) >>> 0; + const memory = this.getCachedUint8Memory(); + let asciiLength = 0; + for (; asciiLength < strLength; asciiLength++) { + const cc = text.charCodeAt(asciiLength); + if (cc > 127) break; + memory[ptr + asciiLength] = cc; + } + if (asciiLength !== strLength) { + if (asciiLength > 0) text = text.slice(asciiLength); + ptr = reallocate(ptr, strLength, asciiLength + text.length * 3, 1) >>> 0; + const view = this.getCachedUint8Memory().subarray( + ptr + asciiLength, + ptr + asciiLength + text.length * 3 + ); + const res = this.cachedTextEncoder.encodeInto(text, view); + asciiLength += res.written; + ptr = reallocate(ptr, asciiLength + text.length * 3, asciiLength, 1) >>> 0; + } + this.offset = asciiLength; + return ptr; + } + + calculateHash(algorithm, challenge, salt, difficulty, expireAt) { + if (algorithm !== 'DeepSeekHashV1') { + throw new Error('Unsupported algorithm: ' + algorithm); + } + const prefix = `${salt}_${expireAt}_`; + let retptr; + try { + retptr = this.wasmInstance.__wbindgen_add_to_stack_pointer(-16); + + const ptr0 = this.encodeString( + challenge, + this.wasmInstance.__wbindgen_export_0, + this.wasmInstance.__wbindgen_export_1 + ); + const len0 = this.offset; + + const ptr1 = this.encodeString( + prefix, + this.wasmInstance.__wbindgen_export_0, + this.wasmInstance.__wbindgen_export_1 + ); + const len1 = this.offset; + + this.wasmInstance.wasm_solve(retptr, ptr0, len0, ptr1, len1, difficulty); + + // 读取返回(注意内存可能增长,先刷新) + this._refreshIfNeeded(); + const dv = new DataView(this.wasmInstance.memory.buffer); + const status = dv.getInt32(retptr + 0, true); + const value = dv.getFloat64(retptr + 8, true); + + if (status === 0) return undefined; + return value; + } finally { + if (retptr !== undefined) { + this.wasmInstance.__wbindgen_add_to_stack_pointer(16); + } + } + } + + async init(wasmPath) { + const imports = { wbg: {} }; // 若报缺少导入,需改用对应的 glue JS + const wasmBuffer = await fs.readFile(wasmPath); + const { instance } = await WebAssembly.instantiate(wasmBuffer, imports); + this.wasmInstance = instance.exports; + this._lastBufferRef = this.wasmInstance.memory.buffer; + this.cachedUint8Memory = new Uint8Array(this._lastBufferRef); + return this.wasmInstance; + } +} + +module.exports = DeepSeekHash; diff --git a/deep/js_data/js_runner.js b/deep/js_data/js_runner.js new file mode 100644 index 0000000..eb88ba6 --- /dev/null +++ b/deep/js_data/js_runner.js @@ -0,0 +1,31 @@ +// ds_runner.js +const path = require('path'); +const DeepSeekHash = require('./ds'); // 就是你那份不依赖 fs-extra 的 ds.js + +async function main() { + // 读取 stdin + const input = await new Promise((resolve, reject) => { + let s = ''; + process.stdin.setEncoding('utf8'); + process.stdin.on('data', c => s += c); + process.stdin.on('end', () => resolve(s)); + process.stdin.on('error', reject); + }); + const p = JSON.parse(input || '{}'); + + const wasmPath = p.wasmPath || path.join(__dirname, 'sha3_wasm_bg.wasm'); + + const dsh = new DeepSeekHash(); + await dsh.init(wasmPath); + + const ans = dsh.calculateHash( + p.algorithm, p.challenge, p.salt, p.difficulty, p.expireAt + ); + + process.stdout.write(JSON.stringify({ ok: true, answer: ans })); +} + +main().catch(err => { + process.stdout.write(JSON.stringify({ ok: false, error: String(err && err.stack || err) })); + process.exitCode = 1; +}); diff --git a/deep/js_data/sha3_wasm_bg.wasm b/deep/js_data/sha3_wasm_bg.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ac92b1d87e8cdf3a5c2af4d189743c1f9d5feba7 GIT binary patch literal 26612 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 literal 0 HcmV?d00001 diff --git a/deepseek.log b/deepseek.log new file mode 100644 index 0000000..edd55c4 --- /dev/null +++ b/deepseek.log @@ -0,0 +1,96 @@ +2026-05-07 13:50:11.514 | INFO | __main__:run:482 - DeepSeek单线程爬虫启动 +2026-05-07 13:50:11.805 | INFO | __main__:start_task_msg:456 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': []} +2026-05-07 13:50:11.805 | INFO | __main__:start_task_msg:465 - 没有任务数据,等待下一轮 +2026-05-07 13:50:44.221 | INFO | __main__:start_task_msg:456 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': []} +2026-05-07 13:50:44.222 | INFO | __main__:start_task_msg:465 - 没有任务数据,等待下一轮 +2026-05-07 13:51:16.705 | INFO | __main__:start_task_msg:456 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': {'id': '019dffa7b2fe7352b7c9a32adeef692f', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffa7b25271669ae8121c9854c2f1', 'keyword': '秋冬保暖跑鞋推荐', 'brand': '阿迪达斯', 'platform_id': '1', 'gather_date': '2026-05-07', 'gather_time': '00:00', 'gather_filter': '2026-05-07 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-07 13:51:17', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-07 07:37:53', 'update_time': '2026-05-07 13:51:17', 'delete_time': 0, 'create_by': '019ab54d82d37126a3705bb555e7de6f', 'update_by': '019ab54d82d37126a3705bb555e7de6f', 'type': 1}} +2026-05-07 13:51:16.705 | INFO | __main__:process_task:382 - 开始处理任务: 秋冬保暖跑鞋推荐 | task_id: 019dffa7b2fe7352b7c9a32adeef692f +2026-05-07 13:51:16.755 | INFO | __main__:get_cookie:67 - 成功获取到cookie: {'id': '019ca340045073d39ca6821d221e4a8f', 'platform_id': '1', 'account': '15601718042', 'login_time': '2026-02-28 15:56:47', 'last_use_time': '2026-05-07 10:13:10', 'reload_time': None, 'status': 1, 'type': 1, 'cookie': 'Bearer C79X87BZwvUuk9ubGRIpY8X1H/cSobonNz4mhuqbZxFRsOU1Y32o3rj4bWx7UNk8', 'category': 1, 'url': 'http://luckin-east-test.oss.neicela.com//ai_seo/session/69a29fbee97c5.json', 'hash': 'ab4635cf7ded9ec63fd87781b86ea3aada276c64d47d65ee88c27f2198d83153'} +2026-05-07 13:51:16.755 | INFO | __main__:process_task:399 - 创建chat_session... +2026-05-07 13:51:16.924 | ERROR | __main__:process_task:441 - 任务 019dffa7b2fe7352b7c9a32adeef692f 处理异常: 无法解析 chat_session_id:{'code': 40003, 'msg': 'Authorization Failed (invalid token)', 'data': None} +2026-05-07 13:51:16.985 | INFO | __main__:update_session:85 - 更新session状态: {"code":500,"msg":"Failed to parse time string (full_datetime) at position 0 (f): The timezone could not be found in the database","data":{"msg":"Failed to parse time string (full_datetime) at position 0 (f): The timezone could not be found in the database","file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/model\/type\/DateTime.php","line":36,"trace":[{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/model\/type\/DateTime.php","line":36,"function":"__construct","class":"DateTime","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/model\/type\/DateTime.php","line":19,"function":"data","class":"think\\model\\type\\DateTime","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/model\/concern\/Attribute.php","line":201,"function":"from","class":"think\\model\\type\\DateTime","type":"::"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/model\/concern\/Attribute.php","line":233,"function":"think\\model\\concern\\{closure}","class":"think\\Model","type":"::"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/model\/concern\/Attribute.php","line":70,"function":"readTransform","class":"think\\Model","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/Model.php","line":364,"function":"initializeData","class":"think\\Model","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/Model.php","line":645,"function":"save","class":"think\\Model","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/app\/service\/spider\/SpiderSessionService.php","line":114,"function":"update","class":"think\\Model","type":"::"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/app\/api\/controller\/v1\/third\/ThirdController.php","line":174,"function":"updateSpiderSession","class":"app\\service\\spider\\SpiderSessionService","type":"->"},{"function":"updateSpiderSession","class":"app\\api\\controller\\v1\\third\\ThirdController","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-container\/src\/Container.php","line":349,"function":"invokeArgs","class":"ReflectionMethod","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/route\/Dispatch.php","line":190,"function":"invokeReflectMethod","class":"think\\Container","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":59,"function":"think\\route\\{closure}","class":"think\\route\\Dispatch","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":66,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/route\/Dispatch.php","line":164,"function":"then","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/route\/dispatch\/Controller.php","line":112,"function":"responseWithMiddlewarePipeline","class":"think\\route\\Dispatch","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/route\/Dispatch.php","line":60,"function":"exec","class":"think\\route\\dispatch\\Controller","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Route.php","line":717,"function":"run","class":"think\\route\\Dispatch","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":59,"function":"think\\{closure}","class":"think\\Route","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/app\/core\/middleware\/ThirdAuthMiddleware.php","line":24,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"function":"handle","class":"app\\core\\middleware\\ThirdAuthMiddleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Middleware.php","line":134,"function":"call_user_func"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":85,"function":"think\\{closure}","class":"think\\Middleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":66,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Route.php","line":716,"function":"then","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Http.php","line":208,"function":"dispatch","class":"think\\Route","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Http.php","line":198,"function":"dispatchToRoute","class":"think\\Http","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":59,"function":"think\\{closure}","class":"think\\Http","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-multi-app\/src\/MultiApp.php","line":51,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":59,"function":"think\\app\\{closure}","class":"think\\app\\MultiApp","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":66,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-multi-app\/src\/MultiApp.php","line":50,"function":"then","class":"think\\Pipeline","type":"->"},{"function":"handle","class":"think\\app\\MultiApp","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Middleware.php","line":134,"function":"call_user_func"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":85,"function":"think\\{closure}","class":"think\\Middleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/app\/core\/middleware\/CorsMiddleware.php","line":48,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"function":"handle","class":"app\\core\\middleware\\CorsMiddleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Middleware.php","line":134,"function":"call_user_func"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":85,"function":"think\\{closure}","class":"think\\Middleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/middleware\/LoadLangPack.php","line":53,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"function":"handle","class":"think\\middleware\\LoadLangPack","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Middleware.php","line":134,"function":"call_user_func"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":85,"function":"think\\{closure}","class":"think\\Middleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-trace\/src\/TraceDebug.php","line":71,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"function":"handle","class":"think\\trace\\TraceDebug","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Middleware.php","line":134,"function":"call_user_func"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":85,"function":"think\\{closure}","class":"think\\Middleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":66,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Http.php","line":197,"function":"then","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Http.php","line":162,"function":"runWithRequest","class":"think\\Http","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/public\/index.php","line":25,"function":"run","class":"think\\Http","type":"->"}],"previous":null}} +2026-05-07 13:51:29.346 | INFO | __main__:process_task:382 - 开始处理任务: 秋冬保暖跑鞋推荐 | task_id: 019dffa7b2fe7352b7c9a32adeef692f +2026-05-07 13:51:29.399 | INFO | __main__:get_cookie:67 - 成功获取到cookie: {'id': '019ca34ce7ea730db1ff1cae365228bc', 'platform_id': '1', 'account': '15601708543', 'login_time': '2026-02-28 16:10:52', 'last_use_time': '2026-05-07 10:44:30', 'reload_time': None, 'status': 1, 'type': 1, 'cookie': 'Bearer +aKz3OgbxHGOn8kGbI4hLLWKYYRvVyiH3axfx6dT9CrA9ghfFOYCLKPfu9g3r54Q', 'category': 1, 'url': 'http://luckin-east-test.oss.neicela.com//ai_seo/session/69a2a30bad544.json', 'hash': 'b8e02ed104cf97a8a660402f5da2b109917fc4e3a832459e5cd0536a1cec242f'} +2026-05-07 13:51:29.399 | INFO | __main__:process_task:399 - 创建chat_session... +2026-05-07 13:51:29.530 | INFO | __main__:process_task:401 - 新建chat_session_id: {'id': '1fe768f9-3e8e-4233-998d-73d207c1a755', 'seq_id': 200296290, 'agent': 'chat', 'model_type': 'default', 'title': None, 'title_type': 'WIP', 'version': 0, 'current_message_id': None, 'pinned': False, 'inserted_at': 1778133090.603, 'updated_at': 1778133090.603} +2026-05-07 13:51:29.530 | INFO | __main__:process_task:404 - 发送prompt: 秋冬保暖跑鞋推荐 +2026-05-07 13:51:29.681 | DEBUG | __main__:solve_answer_fixed_sig:191 - 开始求解PoW: {'algorithm': 'DeepSeekHashV1', 'challenge': '72821738893ec8b6cbb10515077340f8f23c1fb6cbca882966f0d29e2e774edb', 'salt': '106ca0ec120f4fe96b79', 'signature': '02c30094b23df56ba452ffa828303fd9696d5ce306885e65a2bac42af94528b4', 'difficulty': 144000, 'expire_at': 1778133390751, 'expire_after': 300000, 'target_path': '/api/v0/chat/completion'} +2026-05-07 13:51:29.759 | INFO | __main__:solve_answer_fixed_sig:210 - PoW求解结果: {'ok': True, 'answer': 49128} +2026-05-07 13:51:29.759 | INFO | __main__:sse_chat_completion:257 - PoW answer: 49128 +2026-05-07 13:51:31.612 | INFO | __main__:sse_chat_completion:316 - 获取到联网搜索结果 +2026-05-07 13:51:58.644 | INFO | __main__:run:477 - DeepSeek单线程爬虫启动 +2026-05-07 13:51:59.007 | INFO | __main__:start_task_msg:458 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': {'id': 'e07a6ffddf62a61c8072a0d2d518a655', 'project_id': '019b97b0da35706a9f5aba211a201226', 'keyword_id': '019b97bc96c573b1825716bc35c78a24', 'keyword': '国泰基金怎么样', 'brand': '国泰基金', 'platform_id': '4', 'gather_date': '2026-05-07', 'gather_time': '06:00', 'gather_filter': '2026-05-07 00:30:01', 'status': 2, 'retry_count': 1, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-07 09:06:04', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-07 00:30:10', 'update_time': '2026-05-07 09:06:04', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1}} +2026-05-07 13:52:07.019 | INFO | __main__:process_task:382 - 开始处理任务: 国泰基金怎么样 | task_id: e07a6ffddf62a61c8072a0d2d518a655 +2026-05-07 13:52:07.692 | INFO | __main__:get_cookie:67 - 成功获取到cookie: {'id': '019ca3191db172fc8f82b7423527156d', 'platform_id': '1', 'account': '15544503306', 'login_time': '2026-02-28 15:14:18', 'last_use_time': '2026-05-07 11:15:20', 'reload_time': None, 'status': 1, 'type': 1, 'cookie': 'Bearer 4VWUjtnOiThTruApDmjrB3+ivDDvFNEP/1R8EOmBJILUc2L1DL3c8oPyeAnMFD6I', 'category': 1, 'url': 'http://luckin-east-test.oss.neicela.com//ai_seo/session/69a295c970b0e.json', 'hash': '30bcedbdb743d953c555db47d6be232ec8bd0fc20f431f04d4247615c6dbf07c'} +2026-05-07 13:52:24.625 | INFO | __main__:process_task:399 - 创建chat_session... +2026-05-07 13:52:42.673 | INFO | __main__:process_task:401 - 新建chat_session_id: {'id': 'af0e04cd-03b2-4f56-ac91-d7a0450a7f2b', 'seq_id': 200296350, 'agent': 'chat', 'model_type': 'default', 'title': None, 'title_type': 'WIP', 'version': 0, 'current_message_id': None, 'pinned': False, 'inserted_at': 1778133150.209, 'updated_at': 1778133150.209} +2026-05-07 13:52:43.569 | INFO | __main__:process_task:404 - 发送prompt: 国泰基金怎么样 +2026-05-07 13:53:22.717 | DEBUG | __main__:solve_answer_fixed_sig:191 - 开始求解PoW: {'algorithm': 'DeepSeekHashV1', 'challenge': '8428fa2afedf4cc114baaf603199f2105b21aa217fcf7d97c4975f9692c24d78', 'salt': 'c86d4ad0bd86f111fb60', 'signature': 'eeb07df5631227ade954fe31b593236307030e70ac9cd983537887782461800d', 'difficulty': 144000, 'expire_at': 1778133480943, 'expire_after': 300000, 'target_path': '/api/v0/chat/completion'} +2026-05-07 13:53:22.798 | INFO | __main__:solve_answer_fixed_sig:210 - PoW求解结果: {'ok': True, 'answer': 68672} +2026-05-07 13:53:23.489 | INFO | __main__:sse_chat_completion:257 - PoW answer: 68672 +2026-05-07 13:53:44.418 | INFO | __main__:sse_chat_completion:316 - 获取到联网搜索结果 +2026-05-07 13:59:50.659 | INFO | __main__:run:481 - DeepSeek单线程爬虫启动 +2026-05-07 13:59:50.927 | INFO | __main__:start_task_msg:462 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': {'id': 'e07a6ffddf62a61c8072a0d2d518a655', 'project_id': '019b97b0da35706a9f5aba211a201226', 'keyword_id': '019b97bc96c573b1825716bc35c78a24', 'keyword': '国泰基金怎么样', 'brand': '国泰基金', 'platform_id': '4', 'gather_date': '2026-05-07', 'gather_time': '06:00', 'gather_filter': '2026-05-07 00:30:01', 'status': 2, 'retry_count': 1, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-07 09:06:04', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-07 00:30:10', 'update_time': '2026-05-07 09:06:04', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1}} +2026-05-07 13:59:50.927 | INFO | __main__:process_task:383 - 开始处理任务: 国泰基金怎么样 | task_id: e07a6ffddf62a61c8072a0d2d518a655 +2026-05-07 13:59:50.990 | INFO | __main__:get_cookie:67 - 成功获取到cookie: {'id': '019ca34e43fb7313bc76a889f3e59a4a', 'platform_id': '1', 'account': '18151803517', 'login_time': '2026-02-28 16:12:21', 'last_use_time': '2026-05-07 12:18:05', 'reload_time': None, 'status': 1, 'type': 1, 'cookie': 'Bearer aCKsz2+jEKReiyEn1sm7Ghhrlja+FFEkLLlS/yRodOyRMe5sX8UVlJm84u5zear6', 'category': 1, 'url': 'http://luckin-east-test.oss.neicela.com//ai_seo/session/69a2a364d0076.json', 'hash': '3040172575f1dbe718e06fee24924551494181db5efebd7873cccd498dcd39bd'} +2026-05-07 13:59:50.990 | INFO | __main__:process_task:400 - 创建chat_session... +2026-05-07 13:59:51.163 | INFO | __main__:process_task:402 - 新建chat_session_id: {'id': '0e1bb701-7efc-42e0-a8c8-80ceb033807d', 'seq_id': 200296792, 'agent': 'chat', 'model_type': 'default', 'title': None, 'title_type': 'WIP', 'version': 0, 'current_message_id': None, 'pinned': False, 'inserted_at': 1778133592.247, 'updated_at': 1778133592.247} +2026-05-07 13:59:51.163 | INFO | __main__:process_task:405 - 发送prompt: 国泰基金怎么样 +2026-05-07 13:59:51.305 | DEBUG | __main__:solve_answer_fixed_sig:191 - 开始求解PoW: {'algorithm': 'DeepSeekHashV1', 'challenge': 'c104bdd871238f707a80c7920845603bc2e35bb9385002771708db86500a3e8a', 'salt': '69f279dd9c7fce7fd27b', 'signature': '3f0cf3b6b4015365e093a8d3d257937c0c9f8fad79e5337f96087bf6eb5ea73b', 'difficulty': 144000, 'expire_at': 1778133892397, 'expire_after': 300000, 'target_path': '/api/v0/chat/completion'} +2026-05-07 13:59:51.383 | INFO | __main__:solve_answer_fixed_sig:210 - PoW求解结果: {'ok': True, 'answer': 60682} +2026-05-07 13:59:51.383 | INFO | __main__:sse_chat_completion:257 - PoW answer: 60682 +2026-05-07 13:59:53.964 | INFO | __main__:sse_chat_completion:317 - 获取到联网搜索结果 +2026-05-07 14:00:22.027 | INFO | __main__:process_task:440 - 任务 e07a6ffddf62a61c8072a0d2d518a655 提交返回: {'code': 500, 'msg': '当前状态禁止提交', 'data': []} +2026-05-07 14:00:22.313 | INFO | __main__:start_task_msg:462 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': {'id': 'e07a6ffddf62a61c8072a0d2d518a655', 'project_id': '019b97b0da35706a9f5aba211a201226', 'keyword_id': '019b97bc96c573b1825716bc35c78a24', 'keyword': '国泰基金怎么样', 'brand': '国泰基金', 'platform_id': '4', 'gather_date': '2026-05-07', 'gather_time': '06:00', 'gather_filter': '2026-05-07 00:30:01', 'status': 2, 'retry_count': 1, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-07 09:06:04', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-07 00:30:10', 'update_time': '2026-05-07 09:06:04', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1}} +2026-05-07 14:00:22.313 | INFO | __main__:process_task:383 - 开始处理任务: 国泰基金怎么样 | task_id: e07a6ffddf62a61c8072a0d2d518a655 +2026-05-07 14:00:22.384 | INFO | __main__:get_cookie:67 - 成功获取到cookie: {'id': '019ca355b1757380979885bda8c82709', 'platform_id': '1', 'account': '18621553608', 'login_time': '2026-02-28 16:20:28', 'last_use_time': '2026-05-07 12:48:19', 'reload_time': None, 'status': 1, 'type': 1, 'cookie': 'Bearer 5x43Xq4EGnWGkTRK8Evje/W2DuXf04zdBEyM7LnepZsQUePseGSHjAoKq7l1cNhC', 'category': 1, 'url': 'http://luckin-east-test.oss.neicela.com//ai_seo/session/69a2a54b8f6b8.json', 'hash': '560c69c8a9b3db6574922fd21a84e3fc0926a2a122a0e970aa2b7dad5186d9c5'} +2026-05-07 14:00:22.384 | INFO | __main__:process_task:400 - 创建chat_session... +2026-05-07 14:00:22.583 | INFO | __main__:process_task:402 - 新建chat_session_id: {'id': '04dda1a2-a5f5-469c-84af-05b570de2930', 'seq_id': 200296823, 'agent': 'chat', 'model_type': 'default', 'title': None, 'title_type': 'WIP', 'version': 0, 'current_message_id': None, 'pinned': False, 'inserted_at': 1778133623.665, 'updated_at': 1778133623.665} +2026-05-07 14:00:22.583 | INFO | __main__:process_task:405 - 发送prompt: 国泰基金怎么样 +2026-05-07 14:00:22.977 | DEBUG | __main__:solve_answer_fixed_sig:191 - 开始求解PoW: {'algorithm': 'DeepSeekHashV1', 'challenge': 'db088564e5801bf61561aa4c2887dc4e2a2ac0e669709b5463f26106c7faa9d8', 'salt': '9fd3160b23010ad22d6f', 'signature': 'f4733afc5a77c39c6ffc28d697ab60d26d0c08ed019c2c722e33bafce6fb6b45', 'difficulty': 144000, 'expire_at': 1778133924029, 'expire_after': 300000, 'target_path': '/api/v0/chat/completion'} +2026-05-07 14:00:23.052 | INFO | __main__:solve_answer_fixed_sig:210 - PoW求解结果: {'ok': True, 'answer': 42359} +2026-05-07 14:00:23.052 | INFO | __main__:sse_chat_completion:257 - PoW answer: 42359 +2026-05-07 14:00:25.612 | INFO | __main__:sse_chat_completion:317 - 获取到联网搜索结果 +2026-05-07 14:01:19.214 | INFO | __main__:run:484 - DeepSeek单线程爬虫启动 +2026-05-07 14:01:19.465 | INFO | __main__:start_task_msg:465 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': {'id': 'e07a6ffddf62a61c8072a0d2d518a655', 'project_id': '019b97b0da35706a9f5aba211a201226', 'keyword_id': '019b97bc96c573b1825716bc35c78a24', 'keyword': '国泰基金怎么样', 'brand': '国泰基金', 'platform_id': '4', 'gather_date': '2026-05-07', 'gather_time': '06:00', 'gather_filter': '2026-05-07 00:30:01', 'status': 2, 'retry_count': 1, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-07 09:06:04', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-07 00:30:10', 'update_time': '2026-05-07 09:06:04', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1}} +2026-05-07 14:01:19.465 | INFO | __main__:process_task:383 - 开始处理任务: 国泰基金怎么样 | task_id: e07a6ffddf62a61c8072a0d2d518a655 +2026-05-07 14:01:19.514 | INFO | __main__:get_cookie:67 - 成功获取到cookie: {'id': '019ca334004a7134b83100f6ac2f5a6d', 'platform_id': '1', 'account': '17705159638', 'login_time': '2026-02-28 15:43:40', 'last_use_time': '2026-05-07 13:19:07', 'reload_time': None, 'status': 1, 'type': 1, 'cookie': 'Bearer cxJtV5nDR1IokwOJVo1Yw791071EC5d4lJ/6e/yFwY45d9dX8RDsWaHl8PzTVDjv', 'category': 1, 'url': 'http://luckin-east-test.oss.neicela.com//ai_seo/session/69a29cab6128f.json', 'hash': 'bbac0a35c11566658b1420b73861bbb469ecf89617c4d46141f9e556eb85f3ce'} +2026-05-07 14:01:19.514 | INFO | __main__:process_task:400 - 创建chat_session... +2026-05-07 14:01:19.675 | INFO | __main__:process_task:402 - 新建chat_session_id: {'id': '7f716cb6-eae9-4090-9a72-5ce8f771e0cb', 'seq_id': 200296880, 'agent': 'chat', 'model_type': 'default', 'title': None, 'title_type': 'WIP', 'version': 0, 'current_message_id': None, 'pinned': False, 'inserted_at': 1778133680.766, 'updated_at': 1778133680.766} +2026-05-07 14:01:19.675 | INFO | __main__:process_task:405 - 发送prompt: 国泰基金怎么样 +2026-05-07 14:01:20.041 | DEBUG | __main__:solve_answer_fixed_sig:191 - 开始求解PoW: {'algorithm': 'DeepSeekHashV1', 'challenge': '34086ff03df4aedb9544229a62fc3fa3030f0c77847a542db485bfa53ac6b4d2', 'salt': '27d1179afc813742839b', 'signature': 'ef9713ff740229a0f6a15c61fad9366645ad1bb52520d11601370693a26ec086', 'difficulty': 144000, 'expire_at': 1778133981130, 'expire_after': 300000, 'target_path': '/api/v0/chat/completion'} +2026-05-07 14:01:20.132 | INFO | __main__:solve_answer_fixed_sig:210 - PoW求解结果: {'ok': True, 'answer': 103887} +2026-05-07 14:01:20.132 | INFO | __main__:sse_chat_completion:257 - PoW answer: 103887 +2026-05-07 14:01:22.022 | INFO | __main__:sse_chat_completion:317 - 获取到联网搜索结果 +2026-05-07 14:01:50.404 | INFO | __main__:process_task:443 - 任务 e07a6ffddf62a61c8072a0d2d518a655 提交返回: {'code': 500, 'msg': '当前状态禁止提交', 'data': []} +2026-05-07 14:01:50.661 | INFO | __main__:start_task_msg:465 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': {'id': 'e07a6ffddf62a61c8072a0d2d518a655', 'project_id': '019b97b0da35706a9f5aba211a201226', 'keyword_id': '019b97bc96c573b1825716bc35c78a24', 'keyword': '国泰基金怎么样', 'brand': '国泰基金', 'platform_id': '4', 'gather_date': '2026-05-07', 'gather_time': '06:00', 'gather_filter': '2026-05-07 00:30:01', 'status': 2, 'retry_count': 1, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-07 09:06:04', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-07 00:30:10', 'update_time': '2026-05-07 09:06:04', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1}} +2026-05-07 14:01:50.661 | INFO | __main__:process_task:383 - 开始处理任务: 国泰基金怎么样 | task_id: e07a6ffddf62a61c8072a0d2d518a655 +2026-05-07 14:01:50.706 | INFO | __main__:get_cookie:67 - 成功获取到cookie: {'id': '019ca340045073d39ca6821d221e4a8f', 'platform_id': '1', 'account': '15601718042', 'login_time': '2026-02-28 15:56:47', 'last_use_time': '2026-05-07 13:51:17', 'reload_time': None, 'status': 1, 'type': 1, 'cookie': 'Bearer C79X87BZwvUuk9ubGRIpY8X1H/cSobonNz4mhuqbZxFRsOU1Y32o3rj4bWx7UNk8', 'category': 1, 'url': 'http://luckin-east-test.oss.neicela.com//ai_seo/session/69a29fbee97c5.json', 'hash': 'ab4635cf7ded9ec63fd87781b86ea3aada276c64d47d65ee88c27f2198d83153'} +2026-05-07 14:01:50.706 | INFO | __main__:process_task:400 - 创建chat_session... +2026-05-07 14:01:50.871 | ERROR | __main__:process_task:448 - 任务 e07a6ffddf62a61c8072a0d2d518a655 处理异常: 无法解析 chat_session_id:{'code': 40003, 'msg': 'Authorization Failed (invalid token)', 'data': None} +2026-05-07 14:01:50.912 | INFO | __main__:update_session:85 - 更新session状态: {"code":500,"msg":"Failed to parse time string (full_datetime) at position 0 (f): The timezone could not be found in the database","data":{"msg":"Failed to parse time string (full_datetime) at position 0 (f): The timezone could not be found in the database","file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/model\/type\/DateTime.php","line":36,"trace":[{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/model\/type\/DateTime.php","line":36,"function":"__construct","class":"DateTime","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/model\/type\/DateTime.php","line":19,"function":"data","class":"think\\model\\type\\DateTime","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/model\/concern\/Attribute.php","line":201,"function":"from","class":"think\\model\\type\\DateTime","type":"::"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/model\/concern\/Attribute.php","line":233,"function":"think\\model\\concern\\{closure}","class":"think\\Model","type":"::"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/model\/concern\/Attribute.php","line":70,"function":"readTransform","class":"think\\Model","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/Model.php","line":364,"function":"initializeData","class":"think\\Model","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-orm\/src\/Model.php","line":645,"function":"save","class":"think\\Model","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/app\/service\/spider\/SpiderSessionService.php","line":114,"function":"update","class":"think\\Model","type":"::"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/app\/api\/controller\/v1\/third\/ThirdController.php","line":174,"function":"updateSpiderSession","class":"app\\service\\spider\\SpiderSessionService","type":"->"},{"function":"updateSpiderSession","class":"app\\api\\controller\\v1\\third\\ThirdController","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-container\/src\/Container.php","line":349,"function":"invokeArgs","class":"ReflectionMethod","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/route\/Dispatch.php","line":190,"function":"invokeReflectMethod","class":"think\\Container","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":59,"function":"think\\route\\{closure}","class":"think\\route\\Dispatch","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":66,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/route\/Dispatch.php","line":164,"function":"then","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/route\/dispatch\/Controller.php","line":112,"function":"responseWithMiddlewarePipeline","class":"think\\route\\Dispatch","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/route\/Dispatch.php","line":60,"function":"exec","class":"think\\route\\dispatch\\Controller","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Route.php","line":717,"function":"run","class":"think\\route\\Dispatch","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":59,"function":"think\\{closure}","class":"think\\Route","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/app\/core\/middleware\/ThirdAuthMiddleware.php","line":24,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"function":"handle","class":"app\\core\\middleware\\ThirdAuthMiddleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Middleware.php","line":134,"function":"call_user_func"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":85,"function":"think\\{closure}","class":"think\\Middleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":66,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Route.php","line":716,"function":"then","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Http.php","line":208,"function":"dispatch","class":"think\\Route","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Http.php","line":198,"function":"dispatchToRoute","class":"think\\Http","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":59,"function":"think\\{closure}","class":"think\\Http","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-multi-app\/src\/MultiApp.php","line":51,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":59,"function":"think\\app\\{closure}","class":"think\\app\\MultiApp","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":66,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-multi-app\/src\/MultiApp.php","line":50,"function":"then","class":"think\\Pipeline","type":"->"},{"function":"handle","class":"think\\app\\MultiApp","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Middleware.php","line":134,"function":"call_user_func"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":85,"function":"think\\{closure}","class":"think\\Middleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/app\/core\/middleware\/CorsMiddleware.php","line":48,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"function":"handle","class":"app\\core\\middleware\\CorsMiddleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Middleware.php","line":134,"function":"call_user_func"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":85,"function":"think\\{closure}","class":"think\\Middleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/middleware\/LoadLangPack.php","line":53,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"function":"handle","class":"think\\middleware\\LoadLangPack","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Middleware.php","line":134,"function":"call_user_func"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":85,"function":"think\\{closure}","class":"think\\Middleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/think-trace\/src\/TraceDebug.php","line":71,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"function":"handle","class":"think\\trace\\TraceDebug","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Middleware.php","line":134,"function":"call_user_func"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":85,"function":"think\\{closure}","class":"think\\Middleware","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Pipeline.php","line":66,"function":"think\\{closure}","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Http.php","line":197,"function":"then","class":"think\\Pipeline","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/vendor\/topthink\/framework\/src\/think\/Http.php","line":162,"function":"runWithRequest","class":"think\\Http","type":"->"},{"file":"\/www\/wwwroot\/granking-api.neicela.com\/granking-api\/public\/index.php","line":25,"function":"run","class":"think\\Http","type":"->"}],"previous":null}} +2026-05-07 14:02:03.244 | INFO | __main__:process_task:383 - 开始处理任务: 国泰基金怎么样 | task_id: e07a6ffddf62a61c8072a0d2d518a655 +2026-05-07 14:02:03.293 | INFO | __main__:get_cookie:67 - 成功获取到cookie: {'id': '019ca34ce7ea730db1ff1cae365228bc', 'platform_id': '1', 'account': '15601708543', 'login_time': '2026-02-28 16:10:52', 'last_use_time': '2026-05-07 13:51:30', 'reload_time': None, 'status': 1, 'type': 1, 'cookie': 'Bearer +aKz3OgbxHGOn8kGbI4hLLWKYYRvVyiH3axfx6dT9CrA9ghfFOYCLKPfu9g3r54Q', 'category': 1, 'url': 'http://luckin-east-test.oss.neicela.com//ai_seo/session/69a2a30bad544.json', 'hash': 'b8e02ed104cf97a8a660402f5da2b109917fc4e3a832459e5cd0536a1cec242f'} +2026-05-07 14:02:03.293 | INFO | __main__:process_task:400 - 创建chat_session... +2026-05-07 14:02:03.475 | INFO | __main__:process_task:402 - 新建chat_session_id: {'id': 'cebb746a-b55a-4628-835d-b85fd6883716', 'seq_id': 200296924, 'agent': 'chat', 'model_type': 'default', 'title': None, 'title_type': 'WIP', 'version': 0, 'current_message_id': None, 'pinned': False, 'inserted_at': 1778133724.565, 'updated_at': 1778133724.565} +2026-05-07 14:02:03.475 | INFO | __main__:process_task:405 - 发送prompt: 国泰基金怎么样 +2026-05-07 14:02:03.633 | DEBUG | __main__:solve_answer_fixed_sig:191 - 开始求解PoW: {'algorithm': 'DeepSeekHashV1', 'challenge': '40d226ee38d14dfd3ffe0dc9b1aeba06611e039679ec63ddd7ecd99e7a875d11', 'salt': '1728a069de08098888a3', 'signature': '71007ba59bcf3e748b695196e8346bbf0e39029acead4ccc64fc96fb4fa0faec', 'difficulty': 144000, 'expire_at': 1778134024728, 'expire_after': 300000, 'target_path': '/api/v0/chat/completion'} +2026-05-07 14:02:03.740 | INFO | __main__:solve_answer_fixed_sig:210 - PoW求解结果: {'ok': True, 'answer': 89302} +2026-05-07 14:02:03.740 | INFO | __main__:sse_chat_completion:257 - PoW answer: 89302 +2026-05-07 14:02:05.830 | INFO | __main__:sse_chat_completion:317 - 获取到联网搜索结果 +2026-05-07 14:05:18.748 | INFO | __main__:run:484 - DeepSeek单线程爬虫启动 +2026-05-07 14:05:19.056 | INFO | __main__:start_task_msg:465 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': []} +2026-05-07 14:05:19.057 | INFO | __main__:start_task_msg:474 - 没有任务数据,等待下一轮 +2026-05-07 14:05:37.104 | INFO | __main__:run:484 - DeepSeek单线程爬虫启动 +2026-05-07 14:05:37.409 | INFO | __main__:start_task_msg:465 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': []} +2026-05-07 14:05:37.409 | INFO | __main__:start_task_msg:474 - 没有任务数据,等待下一轮 +2026-05-07 14:06:07.720 | INFO | __main__:start_task_msg:465 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': []} +2026-05-07 14:06:07.720 | INFO | __main__:start_task_msg:474 - 没有任务数据,等待下一轮 +2026-05-07 14:06:38.028 | INFO | __main__:start_task_msg:465 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': []} +2026-05-07 14:06:38.028 | INFO | __main__:start_task_msg:474 - 没有任务数据,等待下一轮 +2026-05-07 14:07:08.387 | INFO | __main__:start_task_msg:465 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': []} +2026-05-07 14:07:08.387 | INFO | __main__:start_task_msg:474 - 没有任务数据,等待下一轮 +2026-05-07 14:07:38.613 | INFO | __main__:start_task_msg:465 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': []} +2026-05-07 14:07:38.614 | INFO | __main__:start_task_msg:474 - 没有任务数据,等待下一轮 +2026-05-07 14:08:08.841 | INFO | __main__:start_task_msg:465 - 获取任务响应: {'code': 0, 'msg': 'success', 'data': []} +2026-05-07 14:08:08.841 | INFO | __main__:start_task_msg:474 - 没有任务数据,等待下一轮 diff --git a/deepseekstart.py b/deepseekstart.py new file mode 100644 index 0000000..1c6a8bd --- /dev/null +++ b/deepseekstart.py @@ -0,0 +1,494 @@ +# -*- coding: utf-8 -*- +""" +DeepSeek Web API 单线程版本 +- 参考 kimistart.py 的类结构 +- 使用 loguru 日志系统 +- 单线程循环处理任务 +""" + +import base64 +import json +import os +import pathlib +import random +import re +import string +import time +from datetime import datetime +from json import JSONDecodeError +from typing import Dict, List, Optional, Tuple + +import requests +from glom import glom +from loguru import logger + +from deep.ai_seo import AiSearchResult +from deep.ds_test import calc_pow_with_node +from utlit.retry import retry + +# 配置日志 +cwd = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +logger.add(f"{cwd}/deepseek.log", + level="DEBUG", + rotation="00:00", + retention="3 days", + compression="zip", + backtrace=True) + +# 常量配置 +USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36" +ORIGIN = "https://chat.deepseek.com" +REFERER = "https://chat.deepseek.com/" + +BASE = "https://chat.deepseek.com" +SESSION_CREATE = f"{BASE}/api/v0/chat_session/create" +POW_CHALLENGE = f"{BASE}/api/v0/chat/create_pow_challenge" +CHAT_COMPLETION = f"{BASE}/api/v0/chat/completion" + +TASK_URL = 'https://api.granking.com' +TASK_HOST = 'api.granking.com' + + +class ToolsLoad: + """工具类:处理API请求和会话管理""" + + @retry('获取deepseek cookie', 0, time_sleep=30) + def get_cookie(self, platform_id="1"): + url = "http://granking-api.neicela.com/api/third/getOneSpiderSession?platform_id=" + platform_id + "&app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4" + payload = {} + headers = { + 'Authorization': 'Bearer ', + 'User-Agent': 'Apifox/1.0.0 (http://apifox.com)' + } + response = requests.request("GET", url, headers=headers, data=payload).json() + if response.get("data", []) == []: + logger.warning(f'没有获取到cookie: {response}') + return False + logger.info(f'成功获取到cookie: {response.get("data")}') + return response.get("data") + + @retry('上传cookie状态', 5) + def update_session(self, id, reload_time, status="4"): + url = "http://granking-api.neicela.com/api/third/updateSpiderSession?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4" + payload = json.dumps({ + "id": id, + "status": status, + "reload_time": reload_time + }) + headers = { + 'lang': '{{lang}}', + 'Authorization': 'Bearer ', + 'User-Agent': 'Apifox/1.0.0 (http://apifox.com)', + 'Content-Type': 'application/json' + } + response = requests.request("POST", url, headers=headers, data=payload) + logger.info(f'更新session状态: {response.text}') + return response.text + + @retry('提交结果', 5) + def post_task(self, data): + url = f"{TASK_URL}/api/third/submitProjectTask" + headers = { + 'User-Agent': 'Apifox/1.0.0 (http://apifox.com)', + 'Content-Type': 'application/json', + 'Accept': '*/*', + 'Host': TASK_HOST, + 'Connection': 'keep-alive', + 'Cookie': 'lang=zh-cn' + } + resp = requests.post(url, headers=headers, json=data, timeout=(5, 300)) + resp.raise_for_status() + return resp.json() + + @retry('获取task消息', 5) + def get_task(self): + url = f"{TASK_URL}/api/third/getTask?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4&platform_ids=1" + resp = requests.get(url, timeout=(5, 20)) + resp.raise_for_status() + return resp.json() + + @retry('更新任务状态', 5) + def update_task_status(self, task_id, status): + url = f"{TASK_URL}/api/third/updateTask?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4" + payload = json.dumps({ + "task_id": task_id, + "status": status, + }) + headers = { + 'User-Agent': 'Apifox/1.0.0 (http://apifox.com)', + 'Content-Type': 'application/json', + 'Accept': '*/*', + 'Host': 'xunliu-api.ecps.com.cn', + 'Connection': 'keep-alive', + 'Cookie': 'lang=zh-cn' + } + response = requests.request("POST", url, headers=headers, data=payload) + return response.json() + + def get_leim(self): + url = 'https://hif-leim.deepseek.com/query' + resp = requests.get(url) + return resp.json().get("data").get("biz_data").get("value") + + +class DeepSeekChatClient: + """DeepSeek聊天客户端""" + + def __init__(self): + self.base_path = pathlib.Path(__file__).resolve().parent + self.js_data_path = self.base_path / "js_data" + self.tools = ToolsLoad() + + def default_headers(self, extra: Optional[Dict[str, str]] = None) -> Dict[str, str]: + h = { + "Authorization": '', + "Content-Type": "application/json", + "Origin": ORIGIN, + "Referer": REFERER, + "User-Agent": USER_AGENT, + "Accept": "*/*", + } + if extra: + h.update(extra) + return h + + def create_chat_session(self, cookie) -> dict: + """创建聊天会话""" + r = requests.post(SESSION_CREATE, headers=self.default_headers({"Authorization": cookie}), json={}, timeout=30) + r.raise_for_status() + data = r.json() + # 兼容多种结构 + if isinstance(data, dict) and "id" in data and isinstance(data["id"], str): + return {"id": data["id"]} + if isinstance(data.get("data"), dict): + if isinstance(data["data"].get("id"), str): + return {"id": data["data"]["id"]} + if isinstance(data["data"].get("data"), dict) and isinstance(data["data"]["data"].get("id"), str): + return {"id": data["data"]["data"]["id"]} + biz_data = data["data"].get("biz_data") + if isinstance(biz_data, dict) and isinstance(biz_data.get("id"), str): + return biz_data + return biz_data + raise ValueError(f"无法解析 chat_session_id:{data}") + + def fetch_pow_challenge(self, cookie, target_path="/api/v0/chat/completion") -> dict: + """获取PoW挑战""" + r = requests.post( + POW_CHALLENGE, + headers=self.default_headers({"Authorization": cookie}), + json={"target_path": target_path}, + timeout=30, + ) + r.raise_for_status() + data = r.json() + ch = data.get("data", {}).get("biz_data", {}).get("challenge") + if not ch: + raise RuntimeError(f"挑战返回结构异常:{data}") + return ch + + def solve_answer_fixed_sig(self, challenge_obj: dict) -> int: + """求解PoW答案""" + logger.debug(f"开始求解PoW: {challenge_obj}") + ch = challenge_obj["challenge"] + salt = challenge_obj["salt"] + lim = int(challenge_obj.get("difficulty", 200000)) + expire_at = challenge_obj["expire_at"] + + # 指向 js_data 文件夹中的文件 + node_runner = str(self.js_data_path / "js_runner.js") + wasm_file = str(self.js_data_path / "sha3_wasm_bg.wasm") + + res = calc_pow_with_node( + node_runner_path=node_runner, + wasm_path=wasm_file, + algorithm="DeepSeekHashV1", + challenge=ch, + salt=salt, + difficulty=lim, + expire_at=expire_at, + ) + logger.info(f"PoW求解结果: {res}") + return res.get("answer") + + def pow_to_header_value(self, algorithm: str, challenge: str, salt: str, answer: int, signature: str, target_path: str) -> str: + """组装x-ds-pow-response头""" + payload = { + 'algorithm': algorithm, + 'challenge': challenge, + 'salt': salt, + 'answer': answer, + 'signature': signature, + 'target_path': target_path + } + raw = json.dumps(payload, ensure_ascii=False).encode("utf-8") + return base64.b64encode(raw).decode("ascii") + + def ensure_valid_challenge(self, cookie) -> dict: + """获取未过期的挑战""" + while True: + ch = self.fetch_pow_challenge(cookie, "/api/v0/chat/completion") + now_ms = int(time.time() * 1000) + expire_at = int(ch.get("expire_at", now_ms + 1)) + if expire_at - now_ms > 5000: + return ch + time.sleep(0.2) + + def sse_chat_completion( + self, + chat_session_id: dict, + prompt: str, + cookie: str, + thinking_enabled: bool = False, + search_enabled: bool = True, + parent_message_id: Optional[str] = None, + client_stream_id: Optional[str] = None, + ) -> Tuple[List[Dict], str, str]: + """SSE聊天请求,返回搜索结果、回答、思考内容""" + # 1) 取挑战 + ch = self.ensure_valid_challenge(cookie) + algorithm = ch.get("algorithm", "DeepSeekHashV1") + challenge = ch["challenge"] + salt = ch["salt"] + signature = ch["signature"] + target_path = ch.get("target_path", "/api/v0/chat/completion") + + # 2) 求解answer + answer = self.solve_answer_fixed_sig(ch) + logger.info(f"PoW answer: {answer}") + + # 3) 组装x-ds-pow-response + xpow = self.pow_to_header_value( + algorithm=algorithm, + challenge=challenge, + salt=salt, + answer=answer, + signature=signature, + target_path=target_path, + ) + + # 4) 构建请求头 + h = self.default_headers({"x-ds-pow-response": xpow, "Authorization": cookie}) + h["x-hif-leim"] = self.tools.get_leim() + + if not client_stream_id: + client_stream_id = f"{time.strftime('%Y%m%d')}" + + payload = { + "chat_session_id": chat_session_id.get("id"), + "parent_message_id": parent_message_id, + "prompt": prompt, + "ref_file_ids": [], + "thinking_enabled": thinking_enabled, + "search_enabled": search_enabled, + "client_stream_id": client_stream_id + "-3e910d848b6140d5", + } + + # 5) 发送SSE请求 + with requests.post( + CHAT_COMPLETION, headers=h, json=payload, stream=True, timeout=300 + ) as resp: + resp.raise_for_status() + response_text = '' + thinking_text = '' + search_result_lists = list() + start_content = False + start_thinking = False + + for raw in resp.iter_lines(decode_unicode=True): + if not raw: + continue + line = raw.strip() + # print(line,end=' ') + data_str = line[6:] if line.startswith("data: ") else line + + if data_str == "[DONE]": + logger.info("SSE流结束") + break + + try: + data = json.loads(data_str) + if glom(data, 'v.0.v', default='') == 'TIMEOUT': + logger.warning("DeepSeek服务器繁忙") + except JSONDecodeError: + continue + + # 获取搜索结果 + if data.get('p', '') == 'response/search_results' and isinstance(data.get('v', ''), list): + logger.info("获取到联网搜索结果") + search_result_list = data.get('v', []) + search_result_lists.extend(search_result_list) + + # 深度思考数据 + if data.get('p', '') == 'response/thinking_content': + start_thinking = True + if data.get('p', '') == 'response/thinking_elapsed_secs': + start_thinking = False + if start_thinking: + value = data.get('v', None) + if isinstance(value, dict): + continue + if value is None: + value = glom(data, 'choices.0.delta.content', default="") + thinking_text = thinking_text + str(value) + + # 回复数据 + if data.get('p', '') == 'response/content': + start_content = True + if start_content: + value = data.get('v', None) + if isinstance(value, dict): + continue + if value is None: + value = glom(data, 'choices.0.delta.content', default="") + response_text = response_text + str(value) + + # 处理引用 + citation = list() + citations = re.findall(r'citation:(\d+)', response_text) + if citations: + citation = list(set(citations)) + + # 构建搜索结果列表 + ai_search_result_list = [] + for index, search_result in enumerate(search_result_lists): + dic = { + "url": search_result.get('url', ''), + "title": search_result.get('title', ''), + "body": search_result.get('snippet', ''), + "publish_time": search_result.get('published_at', ''), + "host_name": search_result.get('site_name', '未知'), + "is_referenced": "1" if str(index + 1) in citation else "0" + } + if dic.get("title") and dic.get("url"): + ai_search_result_list.append(dic) + + return ai_search_result_list, response_text, thinking_text + + +class Start: + """主启动类""" + + def __init__(self): + self.tools = ToolsLoad() + self.client = DeepSeekChatClient() + + @retry('处理消息任务', for_work=10) + def process_task(self, task): + """处理单个任务""" + task_id = task.get("id", "") + keyword = task.get("keyword", "") + platform_id = task.get("platform_id", "") + brand = task.get("brand", "") + + logger.info(f"开始处理任务: {keyword} | task_id: {task_id}") + + # 获取cookie + response = self.tools.get_cookie(platform_id="1") + if not response: + logger.warning(f'cookie获取失败') + return False + + cookie = response.get("cookie") + cookie_id = response.get("id") + + if not cookie: + logger.warning(f'cookie为空') + return False + + try: + # 创建会话 + logger.info("创建chat_session...") + session_id = self.client.create_chat_session(cookie) + logger.info(f"新建chat_session_id: {session_id}") + + # 发送聊天请求 + logger.info(f"发送prompt: {keyword}") + ai_search_result_list, answer, thinking = self.client.sse_chat_completion( + chat_session_id=session_id, + prompt=keyword, + cookie=cookie, + thinking_enabled=True, + search_enabled=True, + ) + if 'answer' == '': + print('异常结果',ai_search_result_list, answer, thinking) + return False + + # 构建结果 + now_dt = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + result = { + 'app_id': 'aa65700299848d6f21b969dbc9f6cf7c', + 'secret': '5588071d36f0bc61af849c311a03f2c4', + 'platform_id': platform_id, + 'platform_name': 'deepseek', + 'prompt': keyword, + 'keyword': brand, + 'answer': answer, + 'search_result': ai_search_result_list, + 'screenshot_file': '', + 'run_status': True, + 'task_id': task_id, + 'rank': 0, + 'start_time': now_dt, + 'end_time': now_dt, + 'screenshot_url': '', + 'words': [] + } + + # 提交结果 + post_resp = self.tools.post_task(result) + # print('\n') + # print('\n') + print(result) + logger.info(f"任务 {task_id} 提交返回: {post_resp}") + return result + + except Exception as e: + error_msg = str(e) + logger.error(f"任务 {task_id} 处理异常: {error_msg}") + + # token失效处理 + if "Authorization Failed (invalid token)" in error_msg: + self.tools.update_session(cookie_id, "full_datetime", "2") + + # 更新任务状态为失败 + if task_id: + self.tools.update_task_status(task_id, "4") + raise + + @retry('主运行窗口', for_work=1) + def start_task_msg(self): + """获取并处理任务""" + task_resp = self.tools.get_task() + # task_resp = {'code': 0, 'msg': 'success', 'data': {'id': 'e07a6ffddf62a61c8072a0d2d518a655', 'project_id': '019b97b0da35706a9f5aba211a201226', 'keyword_id': '019b97bc96c573b1825716bc35c78a24', 'keyword': '国泰基金怎么样', 'brand': '国泰基金', 'platform_id': '4', 'gather_date': '2026-05-07', 'gather_time': '06:00', 'gather_filter': '2026-05-07 00:30:01', 'status': 2, 'retry_count': 1, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-07 09:06:04', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-07 00:30:10', 'update_time': '2026-05-07 09:06:04', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1}} + + logger.info(f'获取任务响应: {task_resp}') + + if not task_resp: + logger.info("get_task 未返回有效数据,等待后重试") + time.sleep(5) + return True + + task_data = task_resp.get("data", False) + if not task_data: + logger.info("没有任务数据,等待下一轮") + time.sleep(30) + return True + self.process_task(task_data) + + + return True + + def run(self): + """主循环""" + logger.info("DeepSeek单线程爬虫启动") + while True: + try: + self.start_task_msg() + except Exception as e: + logger.error(f"主循环异常: {e}") + time.sleep(10) + + +if __name__ == "__main__": + Start().run() \ No newline at end of file diff --git a/js_data/ds.js b/js_data/ds.js new file mode 100644 index 0000000..e63aeb5 --- /dev/null +++ b/js_data/ds.js @@ -0,0 +1,113 @@ +// ds.js —— 无需 fs-extra 的版本(CommonJS) +const fs = require('fs').promises; // 用内置 fs.promises + +class DeepSeekHash { + constructor() { + this.wasmInstance = null; + this.offset = 0; + this.cachedUint8Memory = null; + this.cachedTextEncoder = new TextEncoder(); + this._lastBufferRef = null; // 记录上次的 buffer,内存增长时刷新 + } + + _refreshIfNeeded() { + const buf = this.wasmInstance.memory.buffer; + if (this._lastBufferRef !== buf) { + this.cachedUint8Memory = new Uint8Array(buf); + this._lastBufferRef = buf; + } + } + + getCachedUint8Memory() { + if (!this.wasmInstance || !this.wasmInstance.memory) { + throw new Error('WASM instance not initialized'); + } + this._refreshIfNeeded(); + return this.cachedUint8Memory; + } + + encodeString(text, allocate, reallocate) { + if (!reallocate) { + const encoded = this.cachedTextEncoder.encode(text); + const ptr = allocate(encoded.length, 1) >>> 0; + const memory = this.getCachedUint8Memory(); + memory.subarray(ptr, ptr + encoded.length).set(encoded); + this.offset = encoded.length; + return ptr; + } + const strLength = text.length; + let ptr = allocate(strLength, 1) >>> 0; + const memory = this.getCachedUint8Memory(); + let asciiLength = 0; + for (; asciiLength < strLength; asciiLength++) { + const cc = text.charCodeAt(asciiLength); + if (cc > 127) break; + memory[ptr + asciiLength] = cc; + } + if (asciiLength !== strLength) { + if (asciiLength > 0) text = text.slice(asciiLength); + ptr = reallocate(ptr, strLength, asciiLength + text.length * 3, 1) >>> 0; + const view = this.getCachedUint8Memory().subarray( + ptr + asciiLength, + ptr + asciiLength + text.length * 3 + ); + const res = this.cachedTextEncoder.encodeInto(text, view); + asciiLength += res.written; + ptr = reallocate(ptr, asciiLength + text.length * 3, asciiLength, 1) >>> 0; + } + this.offset = asciiLength; + return ptr; + } + + calculateHash(algorithm, challenge, salt, difficulty, expireAt) { + if (algorithm !== 'DeepSeekHashV1') { + throw new Error('Unsupported algorithm: ' + algorithm); + } + const prefix = `${salt}_${expireAt}_`; + let retptr; + try { + retptr = this.wasmInstance.__wbindgen_add_to_stack_pointer(-16); + + const ptr0 = this.encodeString( + challenge, + this.wasmInstance.__wbindgen_export_0, + this.wasmInstance.__wbindgen_export_1 + ); + const len0 = this.offset; + + const ptr1 = this.encodeString( + prefix, + this.wasmInstance.__wbindgen_export_0, + this.wasmInstance.__wbindgen_export_1 + ); + const len1 = this.offset; + + this.wasmInstance.wasm_solve(retptr, ptr0, len0, ptr1, len1, difficulty); + + // 读取返回(注意内存可能增长,先刷新) + this._refreshIfNeeded(); + const dv = new DataView(this.wasmInstance.memory.buffer); + const status = dv.getInt32(retptr + 0, true); + const value = dv.getFloat64(retptr + 8, true); + + if (status === 0) return undefined; + return value; + } finally { + if (retptr !== undefined) { + this.wasmInstance.__wbindgen_add_to_stack_pointer(16); + } + } + } + + async init(wasmPath) { + const imports = { wbg: {} }; // 若报缺少导入,需改用对应的 glue JS + const wasmBuffer = await fs.readFile(wasmPath); + const { instance } = await WebAssembly.instantiate(wasmBuffer, imports); + this.wasmInstance = instance.exports; + this._lastBufferRef = this.wasmInstance.memory.buffer; + this.cachedUint8Memory = new Uint8Array(this._lastBufferRef); + return this.wasmInstance; + } +} + +module.exports = DeepSeekHash; diff --git a/js_data/js_runner.js b/js_data/js_runner.js new file mode 100644 index 0000000..eb88ba6 --- /dev/null +++ b/js_data/js_runner.js @@ -0,0 +1,31 @@ +// ds_runner.js +const path = require('path'); +const DeepSeekHash = require('./ds'); // 就是你那份不依赖 fs-extra 的 ds.js + +async function main() { + // 读取 stdin + const input = await new Promise((resolve, reject) => { + let s = ''; + process.stdin.setEncoding('utf8'); + process.stdin.on('data', c => s += c); + process.stdin.on('end', () => resolve(s)); + process.stdin.on('error', reject); + }); + const p = JSON.parse(input || '{}'); + + const wasmPath = p.wasmPath || path.join(__dirname, 'sha3_wasm_bg.wasm'); + + const dsh = new DeepSeekHash(); + await dsh.init(wasmPath); + + const ans = dsh.calculateHash( + p.algorithm, p.challenge, p.salt, p.difficulty, p.expireAt + ); + + process.stdout.write(JSON.stringify({ ok: true, answer: ans })); +} + +main().catch(err => { + process.stdout.write(JSON.stringify({ ok: false, error: String(err && err.stack || err) })); + process.exitCode = 1; +}); diff --git a/js_data/sha3_wasm_bg.wasm b/js_data/sha3_wasm_bg.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ac92b1d87e8cdf3a5c2af4d189743c1f9d5feba7 GIT binary patch literal 26612 zcmeHwdwf+_o$p#}?|sfbujGUV2qeHdr?d@)kOV?b09&)8P$GT#XsxyiDWruH8ps1m zZKoV4QLxqGj5E`ZuR(9eQmq!}I$E__oM~%y)Z)ErJ5C+xOdWgg^`m%4$6l@Fe!su9 z&&i`$KhEDn$XWZhp1<{5zx8{qwNKQ**iBj~r7zEHHv9JJeVe^~k^oThtTt;rX%_h? zVj3{5WvI;wfp1frlk&hKucJLkDdqcK!X%YRV+^A_&o_SPd!A=JrM;v|7^Onv2Pnj+ z-lcQ7z|*QBk-~UUrE)@Ll7FU?iJJy*+BtfQQL}Fbx|_BR4(=Ko930xTZD4HMrahf1 zk(T_iojdjnD!pjarkk(dKD_nD!Qo8O?504LysteDVQe$xM zuAQUfn>y6Ov*dQFbI+2yLN%vmX%*>A_I$If=q+!Xv#4(AdFlW4Dc$~WMHBARx0~MS zKUPJ*(pUJsNWXRF)+=%W9x~;kj`ofeg6KmZJE2;QDu(NFezd5NjFb(A3LfhG^30j! zWoQ;e39F-U&y7Vjv?tOdDAMCY(Z%ILGGmjG8ILM|bwZWdiC*XTMyjB)Cc^|x=b?t) zGlX7~(V|P5#|yp(^sH_*KE^L5Y|x)m7ReBvy({pn3&tjjUQVG050J|G8P;z^1=iHo zj~48S{E>2$cY|Ki%z|c&=L55XZ*@*(vN{vp6VJ_$@-pY>1&`Qg`kRYE3xnPuZe6&*Q>SrrW$+`}iCU#kg=-X$Q4XHB=sT4TL#6IRE<__y2O=8T0NUIm~w3G~yaZGq*gZpoNgg z%oi2NhKELZ0I8Y^N!KOmmMyCFKv+kOpn}j*HOpj7PRDD-?2t3%l+cx%5}TCqkuO`- z%yqMVAz=+DgKQ<)9Mhl-AbU5}jxqg2gx-)Q!B?OKMrf(crU+yeshEuNQKL;_4py&k zMz3gMG53ILF8Bb zIbJm2Ml&>uVl_Upt(cg)+{l|;ZlGCPZcWga-pHBnfuM|+#>Hcg~xzG#4wtUgwf9W=%J&a4A}NkL<^K-kNR z@)Rq;C!RT;uzPHE(jLI+llIr;xP8wuYcplmiHMarYkzXqzD>-WHFp+y71ND3qs-a} zDM%bF7cu(%`w%jMWVgXI+GMg2Z0LH_NizekNm3wy2;iD1)?sr2e5bt;6cBDuJw=MPLeiz0D)42UkCLy`dq>PX0`yDt;-|u>Izw2tp z)Au_!Ax4<8-@#rp_q&<8-~Fs70#n#JXJ+nqcINiGhfVB$rqDxg1Q!O;y>0^)6_`?V zM-V+&@wxo@J-yIP(Z2OX1F;H;hW!Kq8y!art}3+sZ6lBs*sjb1vS>w?_$({%16h=h zT-yF-ln{sLfocK9t3X8*6c?XW!I==&#RSCX`kXLBC`(Db_;B1xMz;F0W^x%bE!IJ0 zq7!(G&Me~a2hpk9KgDFNoNXuU|K7AfWXnXglVnXX9*mOOPJQGJxt(uT*92;AC9Fv{vmo0#C;!Ol#GCO5jvn!n9WHmjs@VOPJQGy-476 zT*9<=hJ+BMj{cyWD&R#*71Qff3M30PE(R9?12dx^)ub`(WSz-~OmZ{)BPWGU z6OkRFZVo{QU`|Z{OWBVg@Eqn#j4Gs{n)Bu85HJH+GB7-Bs${~m3Mc*lwow@LFS z5!IJt`ayTo^6-ZWG>2kEu^v`~SGDuj!z}iwBn&)|NYg}z-lR{Y@*F5AqbazuTx6|+ z$w;vy2keC!C17IFdO?mO2FgH;G#!jdVyG#^FdzoKpYftMNeoyXGp#F*E;eN_!=}V= zVK$W!eM>}#iX@6mvN}^NCT0&Bf{@U+)y-736BRh3;AI16eL-Osl<6hKV8TcBmq8!W zDsw7=UXnavD44>vZCTVbTB{Bf_6jR<*&qw~Bp3jH@+YQTYbRA$>iPnytA;RaFD~ee ziMTa|^?+R=y>nkxZ4E9Dn9=H?GI|j@Oq;M@K8y5#4Ipxe$Vo@F-e{{jjAKr(l87q+ z>Cch*0g8!TJFPCz@SO(*uZZ?fwc8>pUj}zt1OlG_bL$0P!JG6KV3EO&rQG6yFXVlfG=L%l^nj1!`OcEF(dP3)C(}iB6 zo-zh8g<4-X6mvD`^lP>tc433hK!WwDOo1&<>T)3u9Q^2A8XL*xF*84(n-9OjXJ-_4 z9D&);c3X+%sRifPZt`|4|psYeI4xBrqq1a z*@MnhF@sUX`9B_@<4m`CfN9umjs>V>h6-8J>-C~>njK1~2qKk>VV!4`h62zwSze}8 z^vJ$Tb18%fZifj?wGh(GXCZ34^4H}I1d&bJ?0Wc>?4}$K4mjyn_Q!? z_%?-cim7e`>V?H5+zskPX^e3y__vp8B(a1|8@V}L8Nw_E%Pw6O!^j_^8q? z=++x4rkX)LYRpumY#P{IP~O;_(>BaA-~t7Q{}`?DzCvhv`}Wz{eahyVYaIIX*KBPr z&b<;m+So@-cHL2E!emY-%7uEQNBwf4foqHBrxEU`GBTL2!REnU`CK7~Tu6$8p-o5^ z`I31ti9BzOdID?`*>3X?Q`C8s>7mLAJf4WN$Wbf;Arp9dF$sD7a1b>Xl6Fq9vG2&Y z)mt&S#=>mD;Sl&Y30i^}mH*%(7qj57*}sb4J_;sMxEVv=BrP&U(F%usAB;d`~Fp3LnQ7iq`23>lwdT@ zBrKPaJ9XUDD~!OtQo?03x&VJnL)HzVrwo#cI!3`u^py9>_7Z-J5bSeka0emiHk411 zufZ{u5LO-17n22Hr-NWTESF8Rsr!OrcBohfE7NA-$fn?@L+JHFIxdEMj7kzfh`uYU zgy=@}s5~{=cqpm{6+vybAo=DUT+1e_`b^0zMis^oKjqlqV9D!|oG{L@$mx)r4lJ@o z-KKK%!u}H~zZe{vwYf5OP0|TA?Emr_pvv74m()p#uwgFJ5OGOc#|2B-x^kwFMK#WF z7`vHLZ&tZ*j%09eIOfgTy8J9q0}W?^w(Q>KENY2B6p9wJu5NVF$Y^cq*GUW^OI^&7 z-)Ex<#0g82z&J|C7N=DIHR_SRcc-F?#%kS-1;D2E$k|K0L*Yb89tn`?mv~2*B@z_? zx5yIj9%k{80Jq2z? z6U^cxvrbFaNoMhpSuaS|)6C){vnuj=idlSQ)*<_ck))DzU%`84L>mK=hfmwWH z)=~Maq>#l&W*w8yL(IZsHt!3=HwjZ!{5MdYwy9$fr4ZehIOu+XbPRn$AQMBM6v&Gq zC@!?~W9U-?1u^t#ff6zFpg_qOIxbKcL!S{S6+?d`P&$VGyFi&3`m8|N82Vd*axwHd zf$C!D^8(e!&_e>{W9SP4HN?;t1)3E@UlQn?7=8a7ieJ&eNCW6(CQgWdxA2Y3N1;6 zmJ@}Rq(VcWG*j-+h1k5%R5s%jnrBn_AYD!8P?A$lNtM;H}r6X80Ehze8VIIvF zsCFpR5XM3as=(T2hJr0LWjKrt{aGC@jo}cW#c(NTd(oe;oiH3Nz>M{QtQWTqiL7fK z64|gB26{iFXeh1yDzYAtHE5{gh8`RGGAyjyk)qd((*rj2(2(AY3=3P94OPuFv^Z;P zUhP2)13x`R=O6+5w7gisZg)meNTVqFe;+=fqUF)Ck3gDQzz^X8@bfYJ&9u($6XO>I zqOVc#xT_2hgqI9ca2;%8Ms$n8I(m>OK$sc^WwKnL+CovbC^nOagBPqI60esBM>Ydf z&Y*ADI99=i19{ZtIarShwi{M?bH4-N38bQ3G2oXojJ*!QJu4(&wg3fKi{KPS#@Qv@ zKJ-NsH%X0W6I??8{ag&Rsv3*XfMPJ&B--GasAU*;$23uqA$PdV-G&3pp&}f;G?t|R+zV_c@tZKZjee^t1ehvw>Ho$9GpMesSP-b$uLQhW33>|{ z2?=Csj%sdhu!UcTh>7%rQvyeU*y2dJ*`|Trh!-DgHf1;2k9sKA7d~)D)LSNAgD+zNBVHTP30&RafauSV#ksqB-j+ALc6cn0E zz#H*$o~S1G0O`b@(P;mHgW(8P9hCjOB{+lpJ#DgQEddU+A;4G^uV9D3W*KowLn?q( z;Ir+C&g_3NiP*kN%hCRdzXRt1GE<8)Zx|D4%;`nMjm$XcN48cm5^550&>lpWSU!DR z|7>-*Kq2W1tXK*0yq9-`O60*L_6^TGC{_yG5-=#iuH>kgF=O7bUUl{O-eobSF9IcoZ*$zMIm>t%X;76nZOTS^sLm*j zjsnuA5OCWf{Iv(vMpEVz#ULJ$gN>U9S0HHu10cZ}n}-dFUU+JU5^yI>-F$-r2-&CW zc~bz{5MM0FHfV))KsNDUQyai%izq{@V@&TtI=4YTg)GLCjyS&SEAv!Fr}x2ThSzAS zaRRA`YX%nxqQx|WDIqX&J~jvfj&LM6`=?0dqONN-I{xPcTKiRCYMLRC1efdR8MQtK zO6llKurZh59R$;-N;-|r@ysc;R!f9)GV6KGEUKnjt>+|*NAtC;XCw=pJel>7WMRQ3 zv%W3eYpiwD5Mh;~2ao#@DGIa;M~faZGKkGW$l@}|`~Tcswm=qqa7tdERc4l1wb7ND zS1g69c!jpFP&xw@hWXZm8T^e1ouJRC!05^(Qbk0oRWuu18T~vcBt#FPk_cOdkx+t@ z-J05A??PMn)9B|F(ml*mbjN@Rfn!w_? z{jq0C1=t|S^7l+{wn%cZ!KZb$P;#>~au-N$enxH!dex&hLIV{w25-U)NZ#K988U<( zihd=J2(;6c#)f}JU=#fgX#q`mUfr&NHRfQ=64O-jgq6Lh82$47uyN*L_9;*>ItYpr z0{ze#FOTTR(znH)P_QFC(u6DnF3Ro;!{q>fJBiS*yRJP&**-gNX5 zmoNIr>GXO4rvy0lt@L`_FNse4EIkz6vJp?mKb#qgMmCNz_w-YE-o@O?X*~UK$42H> zD%qjv!{f|8`EfkH1C>W9v7*X>o}uW$$KHfs6rj_0^Z;cy^ylsdGOf`&k0AM&iH`j# z()$f@gG@tZIlX{~xkiQ5HYQs3`(F3*ST?u&8Y^^MTN`-L7HG!ui$+fFZp{7huXR z@pcvROg0o6nAk!ylZSKxQ4sjLy0C!hw!$nXy|6Qp;0gzm;~J3&q=yhaOFUJ` zMqyz&)LYs%!EZp^WCH&{fOBl4oehx^3T*oH;fW%`mJ^6$wAclffs~vSLAy$!o+z|| zfOQjn=5TSL1U%*=dfZ@}rCJV^teGg9iN4a|;v)21XW^4UKBc6*4uL?9;ZO8ke7I=) z_D$R|0b=HCon$9$(?s8r!^Hv?EI-kA!Qo<&RqUb(kRY&gC;HNdi|1mcTPFH?4i^`r z|Hg^F`oqQZTu(fJXrAb6K3qKCo(t)kndn=5xOjmpMDWt4C;Da`E~aJ1eTl=xR$vxP zVC>=&SBYmE^C$Yk!$q?8tckvPhl@)Eht>(u-M8mV^j&ng$g5Wk6Mc<`p>7aT3;)!AcEDY0LK#g(0yaj9RLaALO51(%rOX+!7Rj~3Bn-=iG2{80RTM(c) z0X|OK3k6s@0WQA4o@dV`I02?D+C@@gC%~jjZL0uFCcvZ1aW+w09-Ux(2CQn+i1lcs z5bAr8%qw|UBFU7zRwQ+Z`mk^gf=f*2mb`0_q+ICGgD?Pe4&r7kY(%(;>FkoX8A<3O zj(*9*UbPyLG!_~JpqS1odE1cWO4uUU>?IGI$krpa#=-h;hO;0}Y5>o zCaG`cnS+zuCKatZ9!57=Eqr)L>Dos#c7$m z1^~CBcD0mrJIkF2cMU+oHgsV#U`MedxRWq6#S2z|3FaNv3v;0ecNDe8tM2Yn(LQvO$vl?SA>G822rzlDFTC0* zu;)&Jk;AjygyE)jXS-0rR*oJ(uIkw?+c8^CH+&p?a3}MmcLy$`6azWiWjkCI2;?XO zXY1J8DL0@y$?)3L*Mfo{DY`7t6NqF5?lgmUSx%s(94OMr4Y{ZY^?5C^QN06Pg$vFE|H5)b?;=b6uZR*Jc3^p8#JjvUz=$5q;v=(;%V#BlEIu;pA^AMSEIu;pgnS-h79W}QgnZt^ zEIu;pqi;v8DUOpdU79W{)T0T!Oi;v8DK|Y^g79LZ1 zgm7LUjgI0b8#o)A9IX@U{e9>Htb=oGWW8vx&NwbZMe*C{ zsKT6gqe=^3#DZ%9!-h@38wtd3%7~g_oKVI|H@o)SM{#@L2t?82#g|yTfglboyX0Qr z&$QUNyj6l=8bbEem_^^k&Uv96dK~*gV&@QPjGZTHBbWwRCjlug+c(eL3I`u=TX=Yj2jZ3~RtD`5_(mJ}i>4p;Ae{Bl{!u;* zA?g`kF$!M?mnFm~!G(`M z)r)MFz8M6~^uDCA7A5H#XCY>*+OUcjtSpCqXW_)&i*c2RqT6ar5pM0~#v6OSpqF$d?< z%PZcl!rZZrw?%t}GB6dr5pWaMMUX_H*Wa9nTbU2U76X4lp2WHHT^lj(FwMzRCS2y{ z(H2+@(+_bk1ne&-Q{cQmaANd_%Fj+uUg`wTFb2SDclSagi|Tg981LFy8nG&Ke?mjr zps;E?Lnr%1EXGs=S~NG%7oAN5+8JdaAO+9M4QMeErY;@_h?hVt9*NUKi`6XXKhknW zLw3n%VYOdQ!C5CY>uc4uu3VaLN5NaIlaWK_x*sKq+uZV?WM5Xu7P z$U(5rIuw!)1soMS6rjNnIvh$jn(BbldlSmwB0ei* zeqzL!;akHnH_&I4zYK>qLwIQkkqbcBGR_1+$~OhdQML>XC9kU)1V6+m!NS0$u?Ta3 zLv%ro-A&CbO3;FVDlJ3ps3Cdx0Q(yNWbhEjlYliW3%-+#dxE_1%DI6;kYBNarlAHg z3j=r3o`4vcX*Yl!XH;@V2Ns0kmx5+D&g^4V>^!))GLooRIh3LCLx(C~78+26O+y3b z2ioH32G(@-vN}eM6;0LD@$)!+gC&Mr@Q^H-Ul>tvSgbfW6pMMs2cGFA8rD#exfg9Q zd%k#Erqp$>^%*&8rLT(NDUw8o$!mR+@9*(dU2wk-*3+=ns&D&2IpWebjeF#ARjVB% zRDg*<+VOs?Z%Bl5FcE^*ZM?vgA3dNNep5m^X=wpoCdG)vNQKuA9e=- z9GF`pFT+%)Kv4@x$k$%0feXI=3qdXIz@=h^K~eDtRf9ehsT;AdR7>&*-d8gJja>$BZ!e|)!BuCMT;YBbQ zwhEyXa0xn#?!i%1e!k)rOdKaGgb5&Ju{=niuCWVv)iR6Z=sQo4bndDpCk;O&zF66T zibpVLFb?*?_jG9pb?f~4AX~U;4X3i9?5*p=p^s+ z(5sLUL=jUss3Gy~sG4}=3YNRog#>5|8378?g`{ki_yzPOy2a_9+z*khiOV{0VK5g>CCgXa5Lkk*uK9*45hR{)E(yOa|*nfm-by z%)}jx^%lW4L?;ylgH4V@GGvi7NYMl`2PmKbS8b&RnAr(GwsgIS_{=w=i6zBkf3UF! zn;aa&S>)m6M=J9r1L5EZ=piFbsf@jVE98z3eJm%LEke8l!W~ODV$<$yb2kiuA9%qW5fHhEKBERTBp3i25Eslhf@u^N7ijp=zbalmKn|J8peG*k z02KylYIoWpXVEz{@>x0;t>*5QPiqcMJq=CQKQ?K#e~2A00VoB=!)}P@AEmJ`@{Ayo ze3>s&nf;f8@}F@~GW%(9f$=IJy1!V(_xB+wS|E?|VnLb6jzC6%$@BHl3lOm)6tHoN zFo9?XBZy}hP%{!xGl=K8n3~ft5DWdN9D|S)h&U(cjuw@@CFB8N%%^@S339_!q))4#=)BjZw9>C!P^LL1H8?_y9nu5hOnV>7c(O8tFU?YXGH~FDq{Szvb@3F#=6>E?~ z@&R`)Fa^HDhy=Z{jpbqkV?V}N)0!b}xB@CZN)2N}WTD=u<^bvw8lmM?ilOK1eMst7~DLZ|5q@SV=|)qKkc*FT(<3)0fg`ji;I z;18?$XweJTm4+`_19z)nn}RR5O&JUp09i)3){W`8vApOZRHqr?xv{)>EHJ4Xh}H~< zFT+}N;>BahT+P`B5}U9(UUi`F#*=#aK($H9SZ-2h8|Zp0o$!gURLmXny1C;H2?H6P zNsv3hl(J3!DDJoxJA;h)N}bE0#?;QSjEqwMp$PIdM1P+|VC97aIS=;0T4JMst3X?< zWj+aOG&A{9s?Mv7>|`t-L?7mbx$)}^_`DAMn%SU$vfdu)OJEA)4&dAB z+pV(YB}hel(;QTxYl+2Um)3(nBVY)=B8T$>MrUlUVwY9TRh}$WElziG3p8MV0y&6O z_An{EJ<0_h@;J`x^Gjs3nk*Lii_#|UI^+vC^>8vq0&~20%FZd&8YEIAVKkCV!ar;S zp$18ZJ8qd*VdzLZGnW(4`3AH{X=C)n0c>6AC%)0ljyVa`DbV!Kv~g5#3JJX-91QWx zlYjxl9&k(Yt1Unzt1|yv;}(K!Wapl6P1fpayn+ZtNm(RlL2Qt-h>6N&wCH?zqP=V!=f46zQ+vA}&j%g%78L&(#|X!Ui=}l?6W| zs?G(4Far;@sZ@S0XHpFnLGFMe5xm)#RhkFnNJD;^U?d)2^;USJ5D~>fORfTh+!uIj z2va|e_mE-zQFw5^(9>WLZr<7tLcFrqbhKZN1E8FjsfxTEkTdXrmZ>v*{c7B%qyy99ZN0~1^{V6soMK4@`jB}%aWIihW->-oc95|2nrG_#2o?64#nvk ztf9QDgIECqfCv_2v&7M9G=z(f_XR`(SkEy$-uH!c#ydJwYoV#s5($8zSXD-wR?CZP zA<*I~Aclu`DEJ;aG&Kg}%L!u3I+PL-z9*5_<8coH8-ch=gwWF90;aV|L%-qZ4kWom zF7zOdhndAnn+BR@6h(<4L(iV>FG#JTMI+!$6>XC1+)-j2U;75158R7oWQ3~QEOtwY zMh1;waVHRKVbfitD?$%Z78&9vdeJQ0n5vvsBOJr4RUgI34CLc0SK_l1bc!A-v@hmk z-PmE^D5NvA*EcjiEs68 zlbq_Czs%VzIjwP>6AD?^NY>&w>m;+Tlq@?XjJ1JZ$wDg@Q6C6(AQNH35QPU0RZ;NH zhJx#TDhjUiDhdpWZD3Rm8x#x~$X5yA?A~>LS8aZfLoc77o6XeD-Ei3{n7iSs?>f8T zpd7&L(bGVkF}~=t5E>FEqm+OEc1U1yPbkp42M--(R|y8o#mdsqa_U1tc7UI_MHSTt zW!Q%x#zhBGk>rs9Yv&>4(FjqQIu-o@K(rKU4Kg}|_U9@X=;x};&wQPsP=eWo_g5f~ z@v8nZB-WiKqSIDD?mhj*z!Mo38A$MDflLr@GQIqvEX=zX1M!q)SXMisNjCQoh9!d` z>d)`P!24Jdze7z`P+l)ed3L#X0JTjK28 z@wizErAJ?h+Za8^p<&2oywX-18_}og&>;f7FT((4{uB&Ec~miwHN^X8ltS|5q(USN z-NKhMgm3_wI1$nf`;(7y)hY$ul#B^QRFMx_Kz$kD%7`S+-HKV{f@nzm0&XqJE2nVb zXefYpxYF3AuFGmyXYB{)LhJ`g+z&2>NI!h>17AMTXklx>Nn&Fx3{Q4vkd=Y~#}~@- zhyX8?#Bp0umHrjzTh@rQ?HIgiaCm%ReEZH}J32VN zdvthks~s4&gB;fG9>zEL4sIDA+`8kI_N&GQN5|Sn-?4nxz;OHW(cNR?yLYvZ@7%d# z%eH~-!(;9E9^mVD47LpnjBeT1-PJa*3!S%Z9T>fN`!MlpXA7pplh4c?9T>f(ePG9q zom(V(Y(a%a?a_u2|W%s=L&)df@skTL*90f@YZN<|}q_?rYZU9=>^W zU{~vs%@&jxu$wR6IXt-8?itvzdk|lDJh<2H+&yl0-e9laxqEo)*cv;&ZP4x*9JbrX zti2vZgk44Cs0oa3G45X@orQD_0MeiT@YOfUAlR8p$-BIf3=~&&_(b?I#qH|?uSLdqE?#@zYPv`0t9VRQ#+ z-Bs%9=~}(2V^!y>6{}XR>RPpGRrjjWs-9J=yF0o&yH|9t?C$Db)!p4)>h9@YUFs-x zmR6Kjmbyx-O5LSWsi(BMr=zE{XGPD-p01u%J>5N}o}Ql7tAXNb48Iy(uST=g$Qm6O zzH!ikM@GkEI#ns^N^StVjqTXJWspP$VQ(DYW|jJearAozX%X~rbq9yH#(m^*VJMIM zYPsvdt%Hm;W(UUI0-=!rssnB2pv`)uIi%MvU%vcp*AL#feb~P0BFny8`LM*^ybbHi z9>J4#^XBcSPhPwkDR<$mNICYMNV&Gx-!fih0dmFg&T;S&_Qt5=8F2bqyB(7s1MXwn zw+>p{$|hqN2~*yz9zZ|b(Vs_pKGGi|<*xrR(gf1#IP75>GrH!r_Km)qU$uUX&#=4N zZ`!$)eD+$@A)oyMzp&0Gd2#pf_ANWN4z};YMwI=`+DdIh{RK$pn-zPr(;FnjOn)R;3@BN6Mt819Gq_bpu7S=9Xlb&NR;LUcKhn{ZId6s&wRi$CBx_7vHe`?munVx#^Lg z{rs)h|MJB%Z+z1SKDfO7g4U}(eDtIL?cV#2ed>!3KZ@@Tn!RAntJl5$Vq_|-r8>CewR_PB4)J@5S1l|5@VyzbH~-+0y4*Sz(*w{PAuc*D@x-apy*?t4G+ z;PDeDKmFkF&L95spS`_!YvB29-VL5^UtT$|!0W7U@fW8S21|q2`gIppK9N}LFZNr* zuFU0LS9X6XH76Z5tzEa;+Y+Wa<^%<=Incd5{>Gr)PbX8!UVDL`O?7)~g84~5o4m5W zv@*9cxjalK&i59CrgHKPd9SoAyl~F^^IIC{rY^@&ug%R%rV|^&3sSo?eHUMtSR14h zug9g%yccBN5}F0qFWeBOD<6M*aa|^z$ept$kxn$WEc549zVNE8Z_I8;rPr@(-VnYq z*Pl#RK3A+uC)TGIc$f5-ygH1!I+@)7v%luT*)Fmn(xZ`QR!OM9!`W#{Meb=i79@6DQZ zPHK*x>o@6n-uz^)? zo{x3B`IZJYk(;CtTtzCXSHGhh7DV~>CR8~^;=kIyJy zHb803+Kc*M_qK!YMd4?^_@&3c@$Dy{`?0ERkG0$%Z{Iq2@O>Zr@YlcnWUgV!nzift z-+b+LZ^s`1c+dOpN0Z0C{-fu9d^*>#u7B%b<>22u{FO((_tfcM+%a+Iy&wO|BaeOU z$shdFhI_vJt;fIpWdG$?y!kC}-*ouBcYo${pMT`5kALl{hBi}RPa z-}m6>ANksoPyOfvs`oGN>9~8*x1anU-~INP%ddFrwaKtPe?j}tem=ajbkVE()*X4@ z8*kkG#Me)L=jng^$xCOH-BdjABmcl_!)8Cxu>XO&$|r+G;rC+lCI zcDBpq5bLe@t-^1`GxetOl)3|+%=?1P>TTy7RkP;WMOnLf(a)FJr5AP_UApt*o0pkm zr;1FDX)KySbo8K83=>ep+N%!b!%lgcFfO*8t_ zx>TnzVvx~`Q~Cy9C(xCdXM8X3*fvPTmp(nfbI>hwF(zIT2q3rEN#dQgBy;7Mcd@o>i~$-zAHc(2lb4~O(U zdb3rD?MC?;$KO{P$TZ+R&jk7}&HPz8eSSDEqxCYc12Y4P(CV)N*Itqc?fR2U+xowHMA7+PZb9OM1a;G)P2t@O(_J&Ri98l5eo%Vfw1mpV}*CZ3Nb_wGx#}cR{$fVye2dJTscO=j~ zRssCSfwaQ}#c8?Y|z}gt;#_b5-Ca!q6la`tQe^EdGj6*XcQd zu1C)e(rd6)A4QvseC5A{@oq}0&4_Eszp4*$pyJ?nyR@SCqg3Ti2h$#vr~Pq$%H>zy zjY|A?$R!H-6+Xg_lN9Y;%1q=PuDH~TQxm5yQI&N35Vx;X$E(Eks(6I1-->hmw&G9B zv~S&UlXz}z9m`iN?-oa>nguyDFa~c^ywV#6w!=|dV|R^hf5)J`_#!LmQhU?(;Z5`g zw+#+#RVVB6YKcWa)Re#eWWmdCOOq{y&&D>M{TT literal 0 HcmV?d00001 diff --git a/kimi_tokens.db b/kimi_tokens.db new file mode 100644 index 0000000000000000000000000000000000000000..d409df2546c829334d7cf386be8027e1d91ae481 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/kimistart.py b/kimistart.py new file mode 100644 index 0000000..d57d9e1 --- /dev/null +++ b/kimistart.py @@ -0,0 +1,510 @@ +import os +import random +import struct +import time +from datetime import datetime +from typing import Any, Dict, Generator, List, Optional, Tuple +import jwt +import gzip +import requests +import json +from utlit.retry import retry +from loguru import logger + +cwd = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +print(cwd) +logger.add(f"{cwd}/my.log", # log文件地址 + level="DEBUG", # log记录最低级别 + rotation="00:00", # 将日志记录以大小、时间等方式进行分割或划分 + retention="3 days", # 文件保留时间 + compression="zip", # 文件压缩格式 + backtrace=True, + # rotation="1 MB" # 滚动大日志文件 + + ) + + +class ToolsLoad: + @retry('获取kimi cookie', 0, time_sleep=30) + def get_cookie(self, platform_id="4", category="1"): + url = "http://granking-api.neicela.com/api/third/getOneSpiderSession?platform_id=" + platform_id + "&app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4&category=" + category + payload = {} + headers = { + 'Authorization': 'Bearer ', + 'User-Agent': 'Apifox/1.0.0 (http://apifox.com)' + } + response = requests.request("GET", url, headers=headers, data=payload).json() + if response.get("data", []) == []: + print('没有获取到cookie', response) + return False + # print('返回写死cookie') + + # return { + # # 'cookie': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1c2VyLWNlbnRlciIsImV4cCI6MTc4MDYyNjM4NiwiaWF0IjoxNzc4MDM0Mzg2LCJqdGkiOiJkN3RhZGtrY2htdGdkcnRoZ3NiZyIsInR5cCI6ImFjY2VzcyIsImFwcF9pZCI6ImtpbWkiLCJzdWIiOiJkMzhoNm9hNzgzbWszYm5rcjVhZyIsInNwYWNlX2lkIjoiZDM4aDZvYTc4M21rM2Jua3I1OWciLCJhYnN0cmFjdF91c2VyX2lkIjoiZDM4aDZvYTc4M21rM2Jua3I1OTAiLCJzc2lkIjoiMTczMTQyOTU0NzYzMDI1Njk1NCIsImRldmljZV9pZCI6Ijc2MzY1OTkyODk5MjUzNDUwMjQiLCJyZWdpb24iOiJjbiIsIm1lbWJlcnNoaXAiOnsibGV2ZWwiOjEwfX0.GscKsuyzUNS6J-z3U0mrkL90q1djfBhJdQ5rElxyX7nV5a4kTv931Y2eBa10sON4utceXOCdL0lyF_gzjQ1nzA', + # 'cookie': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1c2VyLWNlbnRlciIsImV4cCI6MTc4MDYyMTEyNywiaWF0IjoxNzc4MDI5MTI3LCJqdGkiOiJkN3Q5NGhwZzZpOHFiZG04djV2ZyIsInR5cCI6ImFjY2VzcyIsImFwcF9pZCI6ImtpbWkiLCJzdWIiOiJjbzBoZ2dtY3A3ZmN0Z3RraWVoMCIsInNwYWNlX2lkIjoiY28waGdnbWNwN2ZjdGd0a2llZzAiLCJhYnN0cmFjdF91c2VyX2lkIjoiY28waGdnbWNwN2ZjdGd0a2llZmciLCJzc2lkIjoiMTczMDEyNzcyNTgxNDI1MTUzMiIsImRldmljZV9pZCI6Ijc2MzY1NzY4Nzg3ODYyNjUzNTgiLCJyZWdpb24iOiJjbiIsIm1lbWJlcnNoaXAiOnsibGV2ZWwiOjEwfX0.0oSaXClxhCGajb32nR7DIOfusiiWL5R7MZRHVuHxmdGCE_XmCAwM4_TUgDiDn5tB2wtpOnW0O1X5j-vwMlnDjg', + # + # 'id': 0 + # } + + print('成功获取到cookie', response) + + return response.get("data") + + @retry('上传cookie状态 cookie', 5) + def update_session(self, id, reload_time, status="4"): + url = "http://granking-api.neicela.com/api/third/updateSpiderSession?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4" + + payload = json.dumps({ + "id": id, + "status": status, + "reload_time": reload_time + }) + headers = { + 'lang': '{{lang}}', + 'Authorization': 'Bearer ', + 'User-Agent': 'Apifox/1.0.0 (http://apifox.com)', + 'Content-Type': 'application/json' + } + + response = requests.request("POST", url, headers=headers, data=payload) + + print(response.text) + return response.text + + @retry('提交结果', 5) + def post_task(self, data): + url = "https://api.granking.com/api/third/submitProjectTask" + resp = requests.post(url, json=data, timeout=(5, 300)) + resp.raise_for_status() + return resp.json() + + @retry('获取task消息', 5) + def get_task(self, ): + url = "https://api.granking.com/api/third/getTask?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4&date=2025-09-20&platform_ids=4" + resp = requests.get(url, timeout=(5, 20)) + resp.raise_for_status() + return resp.json() + + @retry('获取消息id', 5) + def request_tobid(self, + app_id: int, + user_unique_id: str, + web_id: str, + user_agent: str = None + ): + url = "https://gator.volces.com/tobid" + + headers = { + "Content-Type": "application/json", + "User-Agent": user_agent or + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " + "AppleWebKit/537.36 (KHTML, like Gecko) " + "Chrome/145.0.0.0 Safari/537.36" + } + + payload = { + "app_id": app_id, + "user_unique_id": user_unique_id, + "web_id": web_id + } + + response = requests.post( + url, + headers=headers, + json=payload, + timeout=10 + ) + + response.raise_for_status() + return response.json() + + +class KimiChatClient: + + def __init__( + self, + token: str, + device_id: str, + session_id: str, + traffic_id: str, + platform: str = "web", + version: str = "1.0.0", + language: str = "zh-CN", + timezone: str = "Asia/Shanghai", + scenario: str = "SCENARIO_K2D5", + use_search: bool = True, + thinking: bool = False, + ): + # ===== 可变量参数 ===== + self.MAX_TOKEN_ROTATE_TRIES = 3 + self.url = "https://www.kimi.com/apiv2/kimi.gateway.chat.v1.ChatService/Chat" + self.token = token + self.device_id = device_id + self.session_id = session_id + self.traffic_id = traffic_id + self.platform = platform + self.version = version + self.language = language + self.timezone = timezone + self.scenario = scenario + self.use_search = use_search + self.thinking = thinking + + # ============================== + # Connect 协议封包 + # ============================== + + def try_parse_json_from_bytes(self, b: bytes) -> Optional[Dict[str, Any]]: + try: + idx = b.find(b"{") + if idx != -1: + return json.loads(b[idx:].decode("utf-8", errors="replace")) + except Exception: + pass + try: + unz = gzip.decompress(b) + idx = unz.find(b"{") + if idx != -1: + return json.loads(unz[idx:].decode("utf-8", errors="replace")) + except Exception: + pass + return None + + def read_stream_and_parse(self, response: requests.Response, max_frames: Optional[int] = None, + read_chunk: int = 8192) -> \ + Generator[Dict[str, Any], None, None]: + buf = bytearray() + frames = 0 + response.raw.decode_content = False + while True: + try: + chunk = response.raw.read(read_chunk) + except Exception as e: + yield {"error": "read_error", "detail": str(e)} + break + if not chunk: + break + buf += chunk + while True: + if len(buf) == 0: + break + flag = buf[0] + if flag in (0x00, 0x01, 0x02) and len(buf) >= 5: + length = int.from_bytes(buf[1:5], "big") + total_len = 5 + length + if len(buf) < total_len: + break + payload = bytes(buf[5:total_len]) + del buf[:total_len] + frames += 1 + parsed = self.try_parse_json_from_bytes(payload) + if parsed is not None: + yield {"flag": flag, "payload": parsed, "raw_len": len(payload)} + else: + prefix = payload[:512] + try: + txt = prefix.decode("utf-8", errors="replace") + yield {"flag": flag, "payload_text_prefix": txt, "raw_len": len(payload)} + except Exception: + yield {"flag": flag, "payload_hex_prefix": prefix.hex(), "raw_len": len(payload)} + if max_frames and frames >= max_frames: + return + continue + else: + idx = buf.find(b"{") + if idx == -1: + if len(buf) > 10 * 1024 * 1024: + buf = buf[-1024:] + break + try_part = bytes(buf[idx:]) + parsed = self.try_parse_json_from_bytes(try_part) + if parsed is not None: + frames += 1 + yield {"flag": None, "payload": parsed, "raw_len": len(try_part)} + buf.clear() + if max_frames and frames >= max_frames: + return + continue + else: + break + if buf: + parsed = self.try_parse_json_from_bytes(bytes(buf)) + if parsed is not None: + yield {"flag": None, "payload": parsed, "raw_len": len(buf)} + else: + try: + tail_txt = bytes(buf).decode("utf-8", errors="replace") + yield {"flag": None, "payload_raw_tail_text": tail_txt, "raw_len": len(buf)} + except Exception: + yield {"flag": None, "payload_raw_tail_hex": bytes(buf).hex(), "raw_len": len(buf)} + + def _encode_connect(self, payload: dict) -> bytes: + json_bytes = json.dumps(payload, separators=(",", ":")).encode("utf-8") + return b"\x00" + struct.pack(">I", len(json_bytes)) + json_bytes + + def _decode_connect(self, resp_bytes: bytes) -> dict: + if len(resp_bytes) < 5: + raise ValueError("Invalid Connect frame") + + length = struct.unpack(">I", resp_bytes[1:5])[0] + body = resp_bytes[5:5 + length] + return json.loads(body.decode("utf-8")) + + # ============================== + # 构造 headers(全部变量化) + # ============================== + def _build_headers(self): + return { + "Host": "www.kimi.com", + "Connection": "keep-alive", + "x-msh-session-id": self.session_id, + "authorization": f"Bearer {self.token}", + # "authorization": f"Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1c2VyLWNlbnRlciIsImV4cCI6MTc4MDYyNjM4NiwiaWF0IjoxNzc4MDM0Mzg2LCJqdGkiOiJkN3RhZGtrY2htdGdkcnRoZ3NiZyIsInR5cCI6ImFjY2VzcyIsImFwcF9pZCI6ImtpbWkiLCJzdWIiOiJkMzhoNm9hNzgzbWszYm5rcjVhZyIsInNwYWNlX2lkIjoiZDM4aDZvYTc4M21rM2Jua3I1OWciLCJhYnN0cmFjdF91c2VyX2lkIjoiZDM4aDZvYTc4M21rM2Jua3I1OTAiLCJzc2lkIjoiMTczMTQyOTU0NzYzMDI1Njk1NCIsImRldmljZV9pZCI6Ijc2MzY1OTkyODk5MjUzNDUwMjQiLCJyZWdpb24iOiJjbiIsIm1lbWJlcnNoaXAiOnsibGV2ZWwiOjEwfX0.GscKsuyzUNS6J-z3U0mrkL90q1djfBhJdQ5rElxyX7nV5a4kTv931Y2eBa10sON4utceXOCdL0lyF_gzjQ1nzA", + + "x-msh-platform": self.platform, + "x-msh-device-id": self.device_id, + "sec-ch-ua-mobile": "?0", + "connect-protocol-version": "1", + "x-msh-version": self.version, + "x-language": self.language, + "r-timezone": self.timezone, + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36", + "content-type": "application/connect+json", + "x-traffic-id": self.traffic_id, + "Accept": "*/*", + "Origin": "https://www.kimi.com", + "Sec-Fetch-Site": "same-origin", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Dest": "empty", + "Referer": "https://www.kimi.com/", + "Accept-Encoding": "gzip, deflate, br, zstd", + "Accept-Language": "zh-CN,zh;q=0.9" + } + + # ============================== + # 构造 body(全部变量化) + # ============================== + def _build_payload(self, content: str): + + tools = [] + if self.use_search: + tools.append({ + "type": "TOOL_TYPE_SEARCH", + "search": {} + }) + + return { + "scenario": self.scenario, + "tools": tools, + "message": { + "role": "user", + "blocks": [ + { + "message_id": "", + "text": { + "content": content + } + } + ], + "scenario": self.scenario + }, + "options": { + "thinking": self.thinking + } + } + + # ============================== + # 发送请求 + # ============================== + def chat(self, platform_id: str, keyword: str, brand: str, task_id: str, + cookie_id: str, platform_name="kimi"): + payload = self._build_payload(keyword) + framed = self._encode_connect(payload) + token_tries = 0 + print(f'正在获取: {keyword}') + while token_tries < self.MAX_TOKEN_ROTATE_TRIES: + token_tries += 1 + try: + search_result: List[Dict[str, Any]] = [] + answer_parts: List[str] = [] + with requests.post(self.url, headers=self._build_headers(), data=framed, stream=True, + timeout=60) as resp: + if resp.status_code != 200: + text = None + try: + text = resp.text[:500] + except Exception: + pass + # 非200 视情况可能是 token 问题(例如 401),抛出以触发 rotate + raise RuntimeError(f"http_status_{resp.status_code}: {text}") + resp.raw.decode_content = False + got_any = False + for item in self.read_stream_and_parse(resp, max_frames=None): + # print(item) + got_any = True + payload_text_total = json.dumps(item, ensure_ascii=False) + # print(payload_text_total) + # 判定 token 相关错误 + if "当前模型对话次数已达上限" in payload_text_total or "模型对话次数或参数错误" in payload_text_total or "REASON_INVALID_AUTH_TOKEN" in payload_text_total: + raise RuntimeError("模型对话次数或参数错误: " + payload_text_total[:200]) + + payload_dict = item.get("payload") if isinstance(item.get("payload"), dict) else {} + block = payload_dict.get("block") if isinstance(payload_dict, dict) else None + if block and isinstance(block, dict): + txt = block.get("text", {}).get("content", "") + if txt: + answer_parts.append(txt) + message_obj = payload_dict.get("message") if isinstance(payload_dict, dict) else None + if message_obj and isinstance(message_obj, dict): + blocks = message_obj.get("blocks", []) + if isinstance(blocks, list): + for b in blocks: + if isinstance(b, dict): + content = b.get("text", {}).get("content", "") + if content: + answer_parts.append(content) + refs = payload_dict.get("message", {}).get("refs", {}).get("searchChunks", []) if isinstance( + payload_dict.get("message"), dict) else [] + if refs and isinstance(refs, list): + for page in refs: + base = page.get("base", {}) if isinstance(page, dict) else {} + search_result.append({ + "title": base.get("title", ""), + "url": base.get("url", ""), + "host_name": base.get("siteName", ""), + "publish_time": base.get("publishTime", ""), + "body": base.get("snippet", ""), + "is_referenced": "1" + }) + if not got_any: + print("未解析到任何 frames(可能 body 为空或连接被关闭)") + # logger.warning("未解析到任何 frames(可能 body 为空或连接被关闭)") + # 成功 — 释放 token 回 active 并更新 last_used_at + full_answer = "".join(answer_parts).strip() + if full_answer == '': + print('未获取到数据重试...') + return False + now_dt = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + result = { + "app_id": "aa65700299848d6f21b969dbc9f6cf7c", + "secret": "5588071d36f0bc61af849c311a03f2c4", + "platform_id": platform_id, + "platform_name": platform_name, + "prompt": keyword, + "keyword": brand, + "answer": full_answer, + "search_result": search_result, + "screenshot_file": "", + "run_status": True, + "task_id": task_id, + "rank": 0, + "start_time": now_dt, + "end_time": now_dt, + "screenshot_url": "", + "words": [] + } + return result + + except Exception as e: + msg = str(e) + print('异常:', msg) + time.sleep(10) + + # 判定为 token 无效或次数上限等,标记 expired 并尝试下一个 token + if "模型对话次数或参数错误" in msg or "当前模型对话次数已达上限" in msg or msg.startswith( + "http_status_401"): + ToolsLoad().update_session(cookie_id, "", "3") + # 继续尝试下一个 token + return False + else: + # 非 token 错误:把 token 放回 active 以便他人使用 + raise + + raise RuntimeError("达到最大 token 切换尝试仍未成功") + + +# ==================================== +# 使用示例(全部参数外部控制) +# ==================================== + + +class Start: + def __init__(self): + self.tools = ToolsLoad() + + @retry('处理消息任务', for_work=10) + def process_task(self, task): + + task_id = task.get("id", "") + keyword = task.get("keyword", "") + platform_id = task.get("platform_id", "") + brand = task.get("brand", "") + logger.info(f"开始处理任务:{keyword} {task_id}") + response = self.tools.get_cookie() + # {'id': '53191c4f7aa4f0e443d6bce6fd241e67', 'project_id': '019be3ee7b907329bd9114880445cd1f', 'keyword_id': '019be4653db470b39d13449ee5f7afe5', 'keyword': '广州有没有不通过装修公司直接找工长的平台', 'brand': '匠猫', 'platform_id': '4', 'gather_date': '2026-05-06', 'gather_time': '06:00', 'gather_filter': '2026-05-06 00:30:01', 'status': 2, 'retry_count': 2, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-06 11:29:15', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-06 00:30:34', 'update_time': '2026-05-06 11:29:15', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} + token = response.get("cookie", None) + if token is None: + logger.info(f'cookie获取失败: {token}') + return False + id = response.get("id") + payload = jwt.decode(token, options={"verify_signature": False}) + DEVICE_ID = payload.get("device_id") + TRAFFIC_ID = payload.get("sub") + session_data = self.tools.request_tobid(20001731, TRAFFIC_ID, DEVICE_ID) + SESSION_ID = session_data.get("tobid") + + client = KimiChatClient( + token=token, + device_id=DEVICE_ID, + session_id=SESSION_ID, + traffic_id=TRAFFIC_ID, + scenario="SCENARIO_K2D5", + use_search=True, + thinking=False, + ) + + # 执行聊天任务 + result = client.chat(platform_id=platform_id, keyword=keyword, brand=brand, task_id=task_id, cookie_id=id) + + logger.info(f"任务生成结果: {result}") + if not result: + logger.info(f"任务生成结果异常重新获取: {keyword}") + + return False + post_resp = self.tools.post_task(result) + logger.info(f"KIMI 任务 {task_id} 提交返回: {post_resp}") + print('任务处理完成') + return result + + @retry('主运行窗口', for_work=3) + def start_task_msg(self): + task_resp = self.tools.get_task() + # task_resp = {'code': 0, 'msg': 'success', 'data': {'id': 'e07a6ffddf62a61c8072a0d2d518a655', 'project_id': '019b97b0da35706a9f5aba211a201226', 'keyword_id': '019b97bc96c573b1825716bc35c78a24', 'keyword': '国泰基金怎么样', 'brand': '国泰基金', 'platform_id': '4', 'gather_date': '2026-05-07', 'gather_time': '06:00', 'gather_filter': '2026-05-07 00:30:01', 'status': 2, 'retry_count': 1, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-07 09:06:04', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-07 00:30:10', 'update_time': '2026-05-07 09:06:04', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1}} + + print('KIMI消息内容:', task_resp) + if not task_resp: + logger.info("get_task 未返回有效数据,等待后重试") + time.sleep(5) + return True + + tasks = task_resp.get("data", False) + if not tasks: + logger.info("KIMI 没有任务数据,等待下一轮") + time.sleep(30) + return True + # logger.info(f'开始:{tasks}') + + return self.process_task(tasks) + + def run(self): + while True: + # 获取任务 + self.start_task_msg() + + +if __name__ == "__main__": + # TOKEN = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1c2VyLWNlbnRlciIsImV4cCI6MTc3NTEwODA1NywiaWF0IjoxNzcyNTE2MDU3LCJqdGkiOiJkNmo3NW1hbTUydGNrdmM1bGpuMCIsInR5cCI6ImFjY2VzcyIsImFwcF9pZCI6ImtpbWkiLCJzdWIiOiJkNmo3NW1hbTUydGNrdmM1bGprZyIsInNwYWNlX2lkIjoiZDZqNzVtYW01MnRja3ZjNWxqazAiLCJhYnN0cmFjdF91c2VyX2lkIjoiZDZqNzVtYW01MnRja3ZjNWxqamciLCJzc2lkIjoiMTczMTY2NzA0MjA3NTUxNTcxNCIsImRldmljZV9pZCI6Ijc2MTI4NTI4NjI0MjI1NTU5MTUiLCJyZWdpb24iOiJjbiIsIm1lbWJlcnNoaXAiOnsibGV2ZWwiOjEwfX0.7Lx5UcmhrZ0UNuvaydFNTJX7ta_9qZarXh-GCVpVJiAnan3iI8y8OHFYgKiUTQEjbSS-WQrvP85276_NsH4l-A" + # response =get_cookie(platform_id="1") + # TOKEN = response.get("cookie") + # id = response.get("id") + Start().run() diff --git a/login/kimi_auto_login.py b/login/kimi_auto_login.py new file mode 100644 index 0000000..502813c --- /dev/null +++ b/login/kimi_auto_login.py @@ -0,0 +1,261 @@ +# coding=utf-8 +import os +import re +import time +import json +import requests +from DrissionPage import ChromiumPage, ChromiumOptions, Chromium + + +class LubanSMS: + """鲁班短信平台API封装""" + + def __init__(self, api_key): + self.api_key = api_key + self.base_url = "https://lubansms.com/v2/api" + + def get_balance(self): + """查询余额""" + url = f"{self.base_url}/getBalance" + params = {"apikey": self.api_key} + response = requests.get(url, params=params) + return response.json() + + def get_number(self): + """获取手机号码""" + url = 'https://lubansms.com/v2/api/getKeywordNumber?apikey=5ebc10c8e8c35797de15c9af46063b36&phone=&cardType=全部' + response = requests.get(url) + return response.json() + + def get_sms(self, phone): + """获取短信验证码""" + url = f"https://lubansms.com/v2/api/getKeywordSms?apikey=5ebc10c8e8c35797de15c9af46063b36&phone={phone}&keyword=月之暗面" + response = requests.get(url) + return response.json() + + def set_status(self, phone): + """更改请求状态""" + url = f'https://lubansms.com/v2/api/delKeywordNumber?apikey=5ebc10c8e8c35797de15c9af46063b36&phone={phone}' + response = requests.get(url).json() + print(response) + return response + + +def save_spider_session(platform_id='4', file_url='', account='test', cookie=''): + """ + 新增爬虫session + :param file_url: + :param platform_id: + :param url: + :param file_hash: + :param account: + :return: + """ + url = 'http://granking-api.neicela.com/api/third/saveSpiderSession' + + json_data = { + 'app_id': 'aa65700299848d6f21b969dbc9f6cf7c', + 'secret': '5588071d36f0bc61af849c311a03f2c4', + 'platform_id': platform_id, + 'account': account, + 'url': file_url, + 'hash': str(int(time.time() * 1000)), + 'cookie': cookie + } + res = requests.post(url, json=json_data).json() + print(res) + + return res + + +def kimi_auto_login(api_key): + """ + 使用DrissionPage和鲁班短信平台API自动登录Kimi + api_key: 鲁班短信平台API密钥 + service_id: 服务ID,默认为Tinder越南服务 + """ + # 初始化鲁班短信API + luban = LubanSMS(api_key) + + # 检查余额 + balance_info = luban.get_balance() + if balance_info.get("code") != 0: + print(f"API密钥错误: {balance_info.get('msg')}") + return None + + print(f"当前余额: {balance_info.get('balance')}元") + co = ChromiumOptions() + co.incognito(True) # 匿名模式 + co.auto_port() + + # co.set_argument('--no-sandbox') # 无沙盒模式 + # 创建浏览器页面 + br = Chromium(co) + page = br.new_tab() + # page.set.load_mode.eager() + + try: + print("正在打开Kimi网站...") + # 访问Kimi主页 + page.get('https://www.kimi.ai', timeout=5) + + # 等待页面加载 + # 点击登录按钮 + try: + login_btn = page.ele('text=登录', timeout=10) + if login_btn: + login_btn.click() + print("已点击登录按钮") + except: + print("未找到登录按钮,尝试其他方式...") + # 尝试点击用户头像区域 + try: + user_info = page.ele('.user-info', timeout=10) + if user_info: + user_info.click() + print("已点击用户头像") + except: + pass + + time.sleep(2) + page.ele('xpath:/html/body/div[3]/div/div/div/label/span').click() + # 获取手机号码 + for i in range(30): + print("正在获取手机号码...") + number_info = luban.get_number() + print(number_info) + if number_info.get("code") != 0: + print(f"获取手机号码失败: {number_info.get('msg')}") + continue + else: + break + + phone_number = number_info.get('phone') + if not phone_number: + return False + + print(f"获取到手机号码: {phone_number}") + + # 输入手机号码 + try: + phone_input = page.ele('.phone-login-mobile-number', timeout=10) + if phone_input: + phone_input.clear() + phone_input.input(phone_number) + print("已输入手机号码") + except Exception as e: + print(f"输入手机号码失败: {e}") + return None + + # 点击发送验证码按钮 + try: + send_code_btn = page.ele('text:发送验证码', timeout=10) + if send_code_btn: + send_code_btn.click() + print("已点击发送验证码") + if page.ele('.yidun_tips', timeout=5): + print('出现验证码换一个') + time.sleep(5) + return False + except Exception as e: + print(f"点击发送验证码按钮失败: {e}") + return None + + # 等待并获取验证码 + print("等待验证码...") + sms_code = None + max_attempts = 15 # 最多等待30次,每次3秒 + + for i in range(max_attempts): + sms_info = luban.get_sms(phone_number) + print(sms_info) + if sms_info.get("code") == 0: + sms_code = sms_info.get("msg") + print(f"收到验证码: {sms_code}") + break + else: + print(f"等待验证码中...({i + 1}/{max_attempts})") + time.sleep(2) + + if not sms_code: + print("未收到验证码,超时") + # 释放号码 + luban.set_status(phone_number) + return None + + # 输入验证码 + try: + code_input = page.ele('css:input[placeholder="请输入验证码"]') + if code_input: + code_input.clear() + yzm = re.search(r'验证码[::]\s*(\d{4,6})', sms_code).group(1) + code_input.input(yzm) + print("已输入验证码") + except Exception as e: + print(f"输入验证码失败: {e}") + return None + + # 点击登录按钮 + try: + page.listen.start(['/api/user/wx/register_login/', '/api/device/register', '/api/user']) + + login_submit_btn = page.ele('text:登录', timeout=10) + if login_submit_btn: + login_submit_btn.click() + print("已点击登录按钮") + except Exception as e: + print(f"点击登录按钮失败: {e}") + # return None + + # 等待登录完成 + print("等待...") + time.sleep(3) + token = '' + for packet in page.listen.steps(): + print(111) + req = packet.request + if req: + headers = req.headers + print(headers) + if 'authorization' in headers: + token = headers['authorization'] + token = token.split(' ')[-1] + print(token) + save_spider_session(cookie=token, account=str(phone_number)) + break + + return token + + except Exception as e: + print(f"发生错误: {e}") + return None + finally: + # 关闭浏览器 + try: + page.close() + br.quit() + except Exception as e: + print(e) + + +# eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1c2VyLWNlbnRlciIsImV4cCI6MTc4MDY1MDUzMSwiaWF0IjoxNzc4MDU4NTMxLCJqdGkiOiJkN3RnYTh0cWlwNjhpa3ZqdGtqMCIsInR5cCI6ImFjY2VzcyIsImFwcF9pZCI6ImtpbWkiLCJzdWIiOiJkN3RnYTh0cWlwNjhpa3ZqdGtlMCIsInNwYWNlX2lkIjoiZDd0Z2E4dHFpcDY4aWt2anRrZGciLCJhYnN0cmFjdF91c2VyX2lkIjoiZDd0Z2E4dHFpcDY4aWt2anRrZDAiLCJzc2lkIjoiMTczMTc0MTgwODg3MjkyMjE1MyIsImRldmljZV9pZCI6Ijc2MzY3MDMwMDkwOTA1ODg0MjciLCJyZWdpb24iOiJjbiIsIm1lbWJlcnNoaXAiOnsibGV2ZWwiOjEwfX0.t9mZ7v-XRWQp91QAWxhvG2l5-VKNwJUIv2R2YDD9ilOUStOh6Oz03wiwQkKLcxke17PuSfcj6DUY_8YByTl1rA +if __name__ == '__main__': + # 需要用户输入API密钥 + api_key = '5ebc10c8e8c35797de15c9af46063b36' + service_id = '541182' + # save_spider_session( + # cookie='eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1c2VyLWNlbnRlciIsImV4cCI6MTc4MDY0OTgyNCwiaWF0IjoxNzc4MDU3ODI0LCJqdGkiOiJkN3RnNG82bjNtazNyNnJtcHZuZyIsInR5cCI6ImFjY2VzcyIsImFwcF9pZCI6ImtpbWkiLCJzdWIiOiJkNjJxZGhmZnRhZWE2OWltY3RjMCIsInNwYWNlX2lkIjoiZDYycWRoZmZ0YWVhNjlpbWN0YmciLCJhYnN0cmFjdF91c2VyX2lkIjoiZDYycWRoZmZ0YWVhNjlpbWN0YjAiLCJzc2lkIjoiMTczMTU0MTY5Nzc3MDI4NzY2NyIsImRldmljZV9pZCI6Ijc2MzY3MDAwMTk3OTM1MTQyNTIiLCJyZWdpb24iOiJjbiIsIm1lbWJlcnNoaXAiOnsibGV2ZWwiOjEwfX0.bA_j_u3JJSP7uwtBR5YAfR0tuGtbC70kYUyEI9sqXk-b_WrTFeNLDJm2ofJXPRF5yV8cyhbZou9P5K0sbrHO0A') + a = 0 + for u in range(50): + try: + result = kimi_auto_login(api_key) + if result: + a += 1 + print(f"自动登录完成,cookies文件: {result}") + print('成功:',a) + else: + print("自动登录失败") + time.sleep(5) + except Exception as e: + print(e) + pass diff --git a/login/mita_login.py b/login/mita_login.py new file mode 100644 index 0000000..992582d --- /dev/null +++ b/login/mita_login.py @@ -0,0 +1,472 @@ +# yuanbao_sms_auto.py +""" +Playwright 自动登录(sms_auto 完整实现模板) +流程: + 1. 向接码平台下单获取一个手机号(得到 order_id / phone / phone_id 等) + 2. 将手机号填写到页面并触发发送验证码 + 3. 轮询接码平台查询该订单的短信列表并抽取验证码 + 4. 把验证码填入页面并完成登录 + 5. 登录成功后导出 cookie 并上传到 /cookies/add +注意:需要你把 PROVIDER_* 常量替换为真实接码平台的 API 信息或实现 provider adapter。 +""" + +import os +import re +import requests +from typing import Optional, Dict, Any, List +from playwright.sync_api import sync_playwright, TimeoutError as PWTimeoutError +from utlit.update_db import upsert_token + +# ========== 配置区(按照你要对接的接码平台修改) ========== +COOKIES_ADD_URL = os.getenv("COOKIES_ADD_URL", "http://127.0.0.1:5001/cookies/add") +API_KEY = os.getenv("COOKIES_ADD_API_KEY", "144defc3b314ef9f37d45651e6b1228f") + +TARGET = os.getenv("TARGET", "https://metaso.cn/") +HEADLESS = False + +# 接码平台通用配置(下面是示例占位) +LUBAN_API_BASE = os.getenv("LUBAN_API_BASE", "https://lubansms.com/v2/api") +LUBAN_API_KEY = os.getenv("LUBAN_API_KEY", "5ebc10c8e8c35797de15c9af46063b36") +DEFAULT_TIMEOUT = 15 # seconds +DEFAULT_CARD_TYPE = os.getenv("LUBAN_CARDTYPE", "1") # 根据平台说明填写默认卡种 + +# 超时与轮询参数 +ORDER_TIMEOUT = 60 # 等待平台分配号码的超时(秒) +SMS_POLL_TIMEOUT = 180 # 等待短信到达的超时(秒) +SMS_POLL_INTERVAL = 3 # 轮询间隔(秒) +CODE_REGEX = re.compile(r"(\d{4,8})") # 匹配 4~8 位数字验证码 + +# ========== provider adapter 模式(必须实现这些函数) ========== +# 这些函数为示例实现,你需要根据真实接码平台 API 调整请求及解析逻辑。 + +# Helper to build URL +def _url(path: str) -> str: + return LUBAN_API_BASE.rstrip("/") + "/" + path.lstrip("/") + +# ---------- provider_request_number ---------- +def provider_request_number(card_type: Optional[str] = None, **kwargs) -> Dict[str, Any]: + """ + 请求/租用一个带关键字的号码(getKeywordNumber) + 返回示例: + {"ok": True, "order_id": "", "phone": "13800138000", "raw": } + 失败返回: + {"ok": False, "error": "...", "raw": } + 参数: + - country: 国家码(字符串),lubansms 的 API 若无 country 字段可忽略 + - card_type: 卡种/套餐类型(平台文档里的 cardType 值) + """ + card_type = card_type or DEFAULT_CARD_TYPE + apikey = LUBAN_API_KEY + if not apikey or apikey == "YOUR_APIKEY": + return {"ok": False, "error": "no_api_key_configured"} + + params = { + "apikey": apikey, + "phone": "", # 有些接口要求 phone param 空或占位,保留 + "cardType": card_type + } + + + try: + resp = requests.get(_url("getKeywordNumber"), params=params, timeout=DEFAULT_TIMEOUT) + except Exception as e: + return {"ok": False, "error": f"request_failed: {e}"} + + # 尝试解析 JSON + try: + j = resp.json() + if j.get("code") == 0: + return j + except Exception: + return {"ok": False, "error": "invalid_json", "raw": resp.text} + +# ---------- provider_get_messages ---------- +def provider_get_messages(phone: str, keyword: Optional[str] = None, **kwargs) -> Dict[str, Any]: + """ + 拉取短信(getKeywordSms)。 + 返回: + 收到短信: {"ok": True, "messages": [{"text": "...", "ts": 1234567890}], "raw": ...} + 等待短信: {"ok": False, "error": "waiting_sms", "raw": ...} + API 错误: {"ok": False, "error": "api_error", "raw": ...} + """ + apikey = LUBAN_API_KEY + if not apikey or apikey == "YOUR_APIKEY": + return {"ok": False, "error": "no_api_key_configured"} + + params = {"apikey": apikey, "phone": phone} + if keyword: + params["keyword"] = keyword + + try: + resp = requests.get(_url("getKeywordSms"), params=params, timeout=DEFAULT_TIMEOUT) + resp.raise_for_status() + except Exception as e: + return {"ok": False, "error": f"request_failed: {e}"} + + try: + j = resp.json() + except Exception: + return {"ok": False, "error": "invalid_json", "raw": resp.text} + + code = j.get("code") + msg = j.get("msg", "") + + if code == 0: + # 收到短信 + return {"ok": True, "messages": j.get("msg", ""), "raw": j} + + elif code == 400 and "尚未收到短信" in msg: + # 等待短信 + return {"ok": False, "error": "waiting_sms", "raw": j} + + else: + # 其他 API 错误 + return {"ok": False, "error": "api_error", "raw": j} + +# ---------- provider_cancel_order ---------- +def provider_cancel_order( phone: str = None, **kwargs) -> Dict[str, Any]: + """ + 释放/取消号码(delKeywordNumber)。 + 返回 {"ok": True} 或 {"ok": False, "error": "..."} + """ + apikey = LUBAN_API_KEY + if not apikey or apikey == "YOUR_APIKEY": + return {"ok": False, "error": "no_api_key_configured"} + + params = {"apikey": apikey, "phone": phone} + try: + resp = requests.get(_url("delKeywordNumber"), params=params, timeout=DEFAULT_TIMEOUT) + except Exception as e: + return {"ok": False, "error": f"request_failed: {e}"} + + try: + j = resp.json() + except Exception: + return {"ok": False, "error": "invalid_json", "raw": resp.text} + + # 成功判断:根据平台文档调整条件(常见 code==0 或 success==True) + if isinstance(j, dict) and (j.get("code") in (0, "0") or j.get("success") in (True, "true")): + return {"ok": True, "raw": j} + # 仍返回原始响应以便调试 + return {"ok": False, "error": "provider_error", "raw": j} + + +# ========== 工具函数 ========== +def extract_code_from_text(text: str) -> Optional[str]: + m = CODE_REGEX.search(text or "") + return m.group(1) if m else None + +def cookies_to_string(cookies): + return "; ".join(f"{c['name']}={c['value']}" for c in cookies) + +def upload_cookie(cookie_str): + headers = {"X-API-Key": API_KEY, "Content-Type": "application/json"} + resp = requests.post(COOKIES_ADD_URL, headers=headers, json={"cookie": cookie_str}, timeout=30) + resp.raise_for_status() + return resp.json() + +from playwright.sync_api import Page, TimeoutError +import time + +def ensure_logged_in_ui(page: Page, wait_for_login_selector: str = None, timeout: int = 30): + """ + 检查页面是否显示未登录(基于 .nick-info-name 包含 '未登录')。 + 若未登录则点击触发器(.t-trigger 或 avatar 容器),并等待登录页面/弹窗出现。 + 参数: + page: Playwright Page 对象 + wait_for_login_selector: 登录弹窗/页面可见后用于等待的选择器(可选) + timeout: 等待登录出现的超时(秒) + 返回: + True if we clicked/opened login (or already logged in False if already logged?) + """ + try: + # 方法一:用按钮文本(最简单、最稳) + btn = page.get_by_role("button", name="登录/注册") + btn.wait_for(state="visible", timeout=5000) + btn.click() + return True + except PWTimeoutError: + # 备选:更精确的 CSS 选择器(你贴的 HTML 中有很多 class) + try: + btn2 = page.locator("button.css-veatkv", has_text="登录/注册") + btn2.wait_for(state="visible", timeout=3000) + btn2.click() + except Exception as e: + print("点击登录按钮失败:", e) + page.screenshot(path="fail_login.png") + return False +from playwright.sync_api import Page, TimeoutError +import time + +def click_phone_tab(page: Page, timeout: int = 10) -> bool: + """ + 尝试点击“手机”选项(返回 True 表示已点击并选中) + """ + try: + btn = page.locator("p.css-141qk0f", has_text="手机验证") + btn.wait_for(state="visible", timeout=5000) + btn.click() + print("已点击:手机验证") + return True + except Exception as e: + print("点击手机验证失败:", e) + # page.screenshot(path="fail_login.png") + return False +import re +from playwright.sync_api import Page, TimeoutError +import time + +def click_agree_span(page: Page, timeout: float = 5.0) -> bool: + """ + 尝试点击页面中显示文本 '我已阅读并同意 ' 的 元素。 + 返回 True 表示已点击(或已勾选),False 表示失败。 + """ + try: + # 首选:直接 check input(安全且会跳过已选状态) + checkbox = page.locator("#desktop-login-policy") + checkbox.wait_for(state="attached", timeout=3000) + checkbox.check(timeout=3000) # 如果已经选中不会抛错 + print("使用 input#desktop-login-policy.check() 成功") + except Exception as e: + print("直接 check 失败,尝试点击包含的 label/span ->", e) + try: + # 备选:点击包含 checkbox 的 label(对自定义样式友好) + page.locator("label:has(#desktop-login-policy)").first.click(timeout=3000) + print("通过点击 label 成功") + except Exception as e2: + print("label 点击失败,尝试强制点击渲染的 checkbox span ->", e2) + try: + page.locator("input#desktop-login-policy").first.click(force=True) + print("force click 成功") + except Exception as e3: + print("所有方法失败:", e3) + page.screenshot(path="checkbox_click_fail.png") + + # 验证:检查是否真的被选中 + try: + is_checked = page.locator("#desktop-login-policy").is_checked() + print("当前 checked 状态:", is_checked) + except Exception: + print("无法读取 checked 状态,可能是自定义组件(需检查 aria- 属性或 class)") + + + +def fill_phone_and_send(page: Page, phone: str, wait_for_sent: float = 10.0) -> bool: + """ + 填手机号并点击“获取验证码”。 + phone: e.g. "13800138000" or "+8613800138000" or "8613800138000" + wait_for_sent: 点击后等待发送按钮变为 loading 或不可见的超时时间(秒) + 返回 True 表示已触发发送;False 表示未触发(或出错) + """ + # 规范化号码:去掉空白,保留前导 + 或数字 + phone = (phone or "").strip() + m = re.match(r'^\+?(\d+)$', phone) + if not m: + raise ValueError("phone 格式不合法: " + repr(phone)) + num = m.group(1) + # 如果传入带国家码且是中国 86,可以把前缀去掉用于填写(页面通常期望输入国内号) + # 你可按目标页面需求修改:这里默认若以86开头则去掉 + if num.startswith("86") and len(num) > 8: + num_to_fill = num[2:] + else: + num_to_fill = num + + # 1) 先确保手机选项已选(若你在页面切换到手机登录后再调用可跳过) + # (可选) 点击国家码下拉以切换国家 + # try: + # # 点击区号标签以打开可能的面板(若不需要可跳过) + # if page.query_selector(".yuanbao-oversea-input__wrap__formitem .yuanbao-oversea-input__wrap__formitem__areaCode"): + # try: + # page.click(".yuanbao-oversea-input__wrap__formitem .yuanbao-oversea-input__wrap__formitem__areaCode") + # except Exception: + # pass + # except Exception: + # pass + + # 2) 填手机号输入框 + phone_selectors = [ + "#desktop-login-phone input[type='tel']", + "input[placeholder*='手机号']", + ] + phone_filled = False + for sel in phone_selectors: + try: + el = page.query_selector(sel) + if el: + el.fill(num_to_fill) + phone_filled = True + break + except Exception: + pass + if not phone_filled: + raise RuntimeError("无法找到手机号输入框,检查选择器或页面是否加载完成") + + # 3) 点击“获取验证码”按钮(优先点击可见的 .hyc-phone-login__send-code) + send_selectors = [ + + "button:has-text('发送验证码')", + "text=发送验证码" + ] + clicked = False + for s in send_selectors: + try: + el = page.query_selector(s) + if not el: + continue + # 如果元素存在但看起来是禁用/灰色(可能用 style 或 aria-disabled 标示),尝试等待变为可点 + # 尝试点击 + try: + el.click() + clicked = True + break + except Exception: + # fallback: use page.click(selector) + try: + page.click(s) + clicked = True + break + except Exception: + # 可能被禁用,继续检测 + pass + except Exception: + pass + if not clicked: + return False + return True + + + + +def click_login_and_wait(page: Page, timeout: float = 10.0) -> bool: + """ + 点击登录按钮并等待登录完成或超时。 + - page: Playwright Page + - timeout: 等待登录成功的最长时间(秒) + 返回 True 表示检测到登录成功(或提交已触发并可能成功),False 表示超时或失败。 + """ + btn2 = page.locator("button.css-l7o7jf", has_text="登录/注册") + btn2.wait_for(state="visible", timeout=3000) + btn2.click() + return True +# 用法示例(在你的 Playwright 脚本里) +# page = context.new_page() +# page.goto(TARGET) +# opened = ensure_logged_in_ui(page, wait_for_login_selector="css=div.login-modal, form#loginForm", timeout=20) +# if opened: +# print("尝试触发登录弹窗,等待用户或自动化完成登录") +# else: +# print("未触发登录:可能已经登录或页面结构不同") + +# ========== 主流程:下单→填写→轮询→登录 ========== +def run_sms_auto_login(): + # 1) 向接码平台请求号码 + print("[*] 向接码平台请求号码...") + order = provider_request_number() + if not order.get("phone"): + raise RuntimeError("Request number failed: " + str(order.get("error"))) + phone = order["phone"] + print(f"[+] 获取到手机号: {phone} ") + # phone = "18751835986" + with sync_playwright() as p: + browser = p.chromium.launch(headless=HEADLESS,executable_path= r'C:\Program Files\Google\Chrome\Application\chrome.exe') + context = browser.new_context() + page = context.new_page() + page.goto(TARGET) + print("[*] 已打开目标页面,请等待页面加载并自动填写手机号...") + + ensure_logged_in_ui(page) + time.sleep(2) + click_phone_tab(page) + + click_agree_span(page) + # === 将号码输入到页面的手机号输入框 === + # 请根据目标页面调整选择器 + fill_phone_and_send(page,phone) + # 2) 轮询接码平台获取短信 + print("[*] 轮询接码平台获取短信,超时 %s s ..." % SMS_POLL_TIMEOUT) + start = time.time() + last_err = None + code = None + while True: + if time.time() - start > SMS_POLL_TIMEOUT: + last_err = "sms_poll_timeout" + break + try: + resp = provider_get_messages(phone, "秘塔") + print(f"获取短信响应{resp}") + except Exception as e: + last_err = str(e) + resp = {"ok": False, "error": last_err} + if not resp.get("ok"): + # 可打印 provider 返回信息,便于排错 + print("[...] provider no messages yet:", resp.get("error")) + + else: + if "已被当前号码提供方屏蔽" in resp.get("messages",""): + code = None + break + #{"ok": True, "messages": [{"text": "12345", "ts": 12345}, ...]} + msgs = resp.get("messages") or [] + # 按时间顺序遍历最新消息,尝试抽码 + + code = extract_code_from_text(msgs) + if code: + print("[+] 抽取到验证码:", code) + break + if code: + break + time.sleep(SMS_POLL_INTERVAL) + + if not code: + print("[-] 未收到验证码或匹配失败:", last_err) + try: + data = provider_cancel_order(phone) + print(f"释放号码响应{data}") + except Exception: + pass + browser.close() + raise RuntimeError("Failed to obtain SMS code: " + str(last_err)) + + # 3) 把验证码填入页面并提交 + sms_input_candidates = [ + "input[placeholder*='短信验证码']" + ] + filled_sms = False + for sel in sms_input_candidates: + try: + el = page.query_selector(sel) + if el: + el.fill(code) + filled_sms = True + print("[+] 已把验证码填入选择器:", sel) + break + except Exception: + pass + if not filled_sms: + # 允许用户手工粘贴 + print("[!] 脚本无法定位验证码输入框,请在浏览器手动粘贴验证码后提交") + print("验证码:", code) + input("粘贴并提交后按回车继续...") + click_login_and_wait(page) + # 4) 等待登录成功并导出 cookie + # 等待一定时间观察页面或 cookie + # input("[*] 等待登录完成(若页面需手动点登录请操作)...") + time.sleep(5) + cookies = context.cookies() + cookie_str = cookies_to_string(cookies) + DB = "./kimi_tokens.db" + TABLE = "tokens" + # 单条 upsert + ok = upsert_token(DB, TABLE, phone=phone, platform_name="mita", token_value=cookie_str, status="active") + print("upsert single:", ok) + browser.close() + return cookie_str + +# ========== CLI ========== +if __name__ == "__main__": + while 1: + try: + c = run_sms_auto_login() + print("[DONE] cookie length:", len(c or "")) + except Exception as e: + print("[ERROR]", e) diff --git a/login/set_status_active.py b/login/set_status_active.py new file mode 100644 index 0000000..801a3c2 --- /dev/null +++ b/login/set_status_active.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +""" +一键将 kimi_tokens.db 中所有记录的 status 设置为 active +""" + +import sqlite3 +import os +import sys + + +def main(): + # 获取脚本所在目录 + script_dir = os.path.dirname(os.path.abspath(__file__)) + db_path = os.path.join(script_dir, '../kimi_tokens.db') + + # 检查数据库文件是否存在 + if not os.path.exists(db_path): + print(f"错误:数据库文件不存在 - {db_path}") + sys.exit(1) + + try: + # 连接数据库 + conn = sqlite3.connect(db_path) + cursor = conn.cursor() + + # 更新所有记录的 status 为 active + cursor.execute("UPDATE tokens SET status = 'active'") + updated_rows = cursor.rowcount + + # 提交更改 + conn.commit() + + print(f"成功更新 {updated_rows} 条记录的 status 为 'active'") + + except sqlite3.Error as e: + print(f"数据库错误:{e}") + sys.exit(1) + except Exception as e: + print(f"未知错误:{e}") + sys.exit(1) + finally: + if 'conn' in locals(): + conn.close() + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/mitastart.py b/mitastart.py new file mode 100644 index 0000000..85de659 --- /dev/null +++ b/mitastart.py @@ -0,0 +1,568 @@ +import os +import json +import time +import sqlite3 +import threading +from typing import Any, Dict, List, Optional, Tuple +import requests +from utlit.retry import retry +from loguru import logger + +cwd = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +print(cwd) +logger.add(f"{cwd}/my.log", + level="DEBUG", + rotation="00:00", + retention="3 days", + compression="zip", + backtrace=True) + + +class TokenExpiredError(RuntimeError): + """上游明确告知该 token 已被限流/失效""" + pass + + +class ToolsLoad: + """工具类:封装数据库和API操作""" + + def __init__(self, db_path: str = "./kimi_tokens.db", db_table: str = "tokens"): + self.db_path = db_path + self.db_table = db_table + self.db_write_lock = threading.Lock() + self._ensure_tokens_table() + + def _ensure_tokens_table(self): + """确保tokens表存在""" + create_sql = f""" + CREATE TABLE IF NOT EXISTS {self.db_table} ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + phone TEXT, + platform_name TEXT NOT NULL, + token TEXT NOT NULL, + status TEXT DEFAULT 'active', + created_at DATETIME DEFAULT CURRENT_TIMESTAMP, + reserved_at DATETIME, + last_used_at DATETIME, + updated_at DATETIME DEFAULT CURRENT_TIMESTAMP + ); + """ + try: + conn = sqlite3.connect(self.db_path, timeout=30) + cur = conn.cursor() + cur.execute("PRAGMA journal_mode=WAL;") + cur.execute("PRAGMA synchronous=NORMAL;") + cur.execute("PRAGMA busy_timeout=5000;") + cur.execute(f"SELECT name FROM sqlite_master WHERE type='table' AND name = ?", (self.db_table,)) + if not cur.fetchone(): + logger.info("tokens 表不存在,创建:{}", self.db_table) + cur.executescript(create_sql) + conn.commit() + cur.close() + conn.close() + except Exception as e: + logger.exception("ensure_tokens_table 错误: {}", e) + + @retry('获取token', 3) + def get_and_reserve_token(self, platform_name: str = "mita", + exclude_tokens: Optional[List[str]] = None, + reserve_timeout: int = 60) -> Optional[Tuple[int, str, Optional[str]]]: + """原子抢占 token,返回 (rowid, token, phone) 或 None""" + exclude_tokens = exclude_tokens or [] + for attempt in range(6): + conn = None + try: + conn = sqlite3.connect(self.db_path, timeout=30) + cur = conn.cursor() + cur.execute("PRAGMA busy_timeout=5000;") + + # 回收超时的 reserved + cur.execute(f""" + UPDATE {self.db_table} + SET status='active', reserved_at=NULL, updated_at=CURRENT_TIMESTAMP + WHERE platform_name = ? + AND status = 'reserved' + AND reserved_at IS NOT NULL + AND (strftime('%s','now') - strftime('%s', reserved_at)) > ? + """, (platform_name, reserve_timeout)) + if cur.rowcount: + conn.commit() + + # 取候选 + cur.execute(f""" + SELECT rowid, token, phone FROM {self.db_table} + WHERE platform_name = ? AND status = 'active' + ORDER BY created_at ASC, id ASC + LIMIT 10 + """, (platform_name,)) + rows = cur.fetchall() + + candidate = None + for r in rows: + rid, tkn, phone = r + if tkn not in exclude_tokens: + candidate = (rid, tkn, phone) + break + + if not candidate: + cur.close() + conn.close() + return None + + rid, token, phone = candidate + cur.execute(f""" + UPDATE {self.db_table} + SET status = 'reserved', reserved_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP + WHERE rowid = ? AND status = 'active' + """, (rid,)) + + if cur.rowcount == 1: + conn.commit() + cur.close() + conn.close() + return (rid, token, phone) + else: + conn.rollback() + cur.close() + conn.close() + time.sleep(0.05) + continue + except sqlite3.OperationalError as e: + logger.debug("get_and_reserve_token sqlite busy: {}", e) + try: + if conn: + conn.rollback() + except Exception: + pass + time.sleep(0.05) + continue + except Exception as e: + logger.exception("get_and_reserve_token 异常: {}", e) + try: + if conn: + conn.rollback() + conn.close() + except Exception: + pass + return None + return None + + def _with_sqlite_write_retry(self, op_fn, max_attempts: int = 6, base_delay: float = 0.05) -> bool: + """写入重试包装器""" + import random + attempt = 0 + while attempt < max_attempts: + attempt += 1 + conn = None + try: + conn = sqlite3.connect(self.db_path, timeout=30) + cur = conn.cursor() + cur.execute("PRAGMA busy_timeout=5000;") + op_fn(conn, cur) + conn.commit() + cur.close() + conn.close() + return True + except sqlite3.OperationalError as e: + logger.debug("sqlite write attempt {} failed: {}", attempt, e) + try: + if conn: + conn.rollback() + conn.close() + except Exception: + pass + sleep_time = base_delay * (2 ** (attempt - 1)) + random.uniform(0, base_delay) + time.sleep(min(sleep_time, 5.0)) + continue + except Exception as e: + logger.exception("sqlite write unexpected error: {}", e) + try: + if conn: + conn.rollback() + conn.close() + except Exception: + pass + return False + logger.error("sqlite write failed after {} attempts", max_attempts) + return False + + def release_token_back_to_active_by_rowid(self, rowid: int): + """释放token回active状态""" + + def op(conn, cur): + cur.execute(f""" + UPDATE {self.db_table} + SET status='active', reserved_at = NULL, last_used_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP + WHERE rowid = ? + """, (rowid,)) + + try: + with self.db_write_lock: + ok = self._with_sqlite_write_retry(op) + if ok: + logger.debug("release token rowid={} -> active", rowid) + else: + logger.error("release token rowid={} 失败(重试耗尽)", rowid) + except Exception as e: + logger.exception("release_token_back_to_active_by_rowid 错误: {}", e) + + def mark_token_expired_and_release_by_rowid(self, rowid: int): + """标记token为expired""" + + def op(conn, cur): + cur.execute(f""" + UPDATE {self.db_table} + SET status='expired', reserved_at = NULL, updated_at = CURRENT_TIMESTAMP + WHERE rowid = ? + """, (rowid,)) + + try: + with self.db_write_lock: + ok = self._with_sqlite_write_retry(op) + if ok: + logger.info("mark token expired rowid={}", rowid) + else: + logger.error("mark token expired rowid={} 失败(重试耗尽)", rowid) + except Exception as e: + logger.exception("mark_token_expired_and_release_by_rowid 错误: {}", e) + + @retry('获取task消息', 5) + def get_task(self): + """从任务队列获取待处理任务""" + url = "https://api.granking.com/api/third/getTask?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4&date=2025-09-20&platform_ids=13" + resp = requests.get(url, timeout=(5, 20)) + resp.raise_for_status() + return resp.json() + + @retry('提交结果', 5) + def post_task(self, data): + """提交任务处理结果到服务器""" + url = "https://api.granking.com/api/third/submitProjectTask" + resp = requests.post(url, json=data, timeout=(5, 300)) + resp.raise_for_status() + return resp.json() + + @retry('更新任务状态', 5) + def update_task_status(self, task_id: str, status: str): + """更新任务状态""" + url = "https://api.granking.com/api/third/updateTask?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4" + payload = {"task_id": task_id, "status": status} + resp = requests.post(url, json=payload, timeout=(5, 20)) + resp.raise_for_status() + return resp.json() + + +class MitaChatClient: + """秘塔AI聊天客户端""" + + def __init__(self): + self.api_url = "https://metaso.cn/api/search/chat" + self.headers = { + "Host": "metaso.cn", + "Connection": "keep-alive", + "metaso-pc": "pc", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36", + "accept": "text/event-stream", + "Content-Type": "application/json", + "sec-ch-ua-mobile": "?0", + "Origin": "https://metaso.cn", + "Sec-Fetch-Site": "same-origin", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Dest": "empty", + "Accept-Encoding": "gzip, deflate, br, zstd", + "Accept-Language": "zh-CN,zh;q=0.9", + } + + def _build_payload(self, keyword: str, token: str) -> str: + """构建请求payload""" + post_obj = { + "model": "fast_thinking", + "stream": True, + "messages": [{ + "id": "gbt0t89g3qi08crvopt3rm2", + "key": "4u43disi3vqb7vonb37f", + "conversationId": "temp-" + str(int(time.time() * 1000)), + "role": "user", + "content": keyword, + "markdownContent": keyword, + "engineType": "", + "filter": "all", + "contentType": 0, + "outputHtml": False, + "mode": "detail", + "model": "fast_thinking", + "outputStyle": "正常" + }], + "engineType": "", + "mode": "detail", + "filter": "all", + "outputHtml": False, + "outputStyle": "正常", + "darkMode": False, + "outputLanguage": "中文", + "htmlNoDisplayEnable": True, + "metaso-pc": "pc", + "token": token + } + return json.dumps(post_obj, ensure_ascii=False) + + def chat(self, keyword: str, token: str, cookie: str) -> Tuple[str, List[Dict[str, str]]]: + """执行聊天请求并获取AI回复""" + headers = dict(self.headers) + headers['Cookie'] = cookie + data = self._build_payload(keyword, token) + + refs_raw: List[Dict[str, str]] = [] + answer_acc = "" + + try: + with requests.post(self.api_url, data=data, headers=headers, stream=True, timeout=(5, 60)) as r: + r.encoding = "utf-8" + if r.status_code != 200: + text = r.text if hasattr(r, "text") else "" + raise RuntimeError(f"Upstream status {r.status_code}: {text[:200]}") + + r.raw.decode_content = True + for ln in r.iter_lines(decode_unicode=True): + if not ln: + continue + # print(ln, end='',flush=True) + # logger.info("SSE line: {}", ln) + + # 检测token失效 + if isinstance(ln, str) and "搜索次数超出限制" in ln: + raise TokenExpiredError("搜索次数超出限制") + + data_lines = [] + if isinstance(ln, str) and ln.startswith("data:"): + data_lines.append(ln[5:].lstrip()) + if not data_lines: + continue + + data_str = "\n".join(data_lines) + try: + ev = json.loads(data_str) + except Exception: + continue + + if ev.get("type") == "heartbeat": + continue + + if ev.get("object") == "chat.completion.qa_with_agent" and "choices" in ev: + for ch in ev["choices"]: + delta = ch.get("delta") or {} + content = delta.get("content") + if isinstance(content, str) and content: + answer_acc += content + + cits = delta.get("citations") or [] + for c in cits: + if c.get("link") == "": + resp = requests.get("https://metaso.cn/api/knowledge/detail/" + c.get("root_id")) + id = resp.json().get("data").get("id") + second_url = c.get("file_meta").get("previewUrl") + url = "https://metaso.cn/subject-v2/" + id + "?displayUrl=" + second_url + item = { + "title": c.get("title", ""), + "url": url, + "author": (c.get("author") or c.get("authors_ori") or c.get( + "institution") or ""), + "displaySource": (c.get("snippet") or c.get("matched_snippet") or ""), + "publish_time": (c.get("date") or c.get("publish_date_str") or "") + } + else: + item = { + "title": c.get("title", ""), + "url": c.get("link", ""), + "author": (c.get("author") or c.get("authors_ori") or c.get( + "institution") or ""), + "displaySource": (c.get("snippet") or c.get("matched_snippet") or ""), + "publish_time": (c.get("date") or c.get("publish_date_str") or "") + } + refs_raw.append(item) + + return answer_acc, refs_raw + + except TokenExpiredError: + raise + except requests.exceptions.RequestException: + raise + except Exception: + raise + + +class Start: + """秘塔任务处理器主类""" + + def __init__(self): + self.tools = ToolsLoad() + self.client = MitaChatClient() + self.max_token_rotate_tries = 2 + + @retry('处理消息任务', for_work=10) + def process_task(self, task: Dict[str, Any], platform_name: str = "mita") -> Dict[str, Any]: + """处理单个任务""" + task_id = task.get("id", "") + keyword = task.get("keyword", "") + brand = task.get("brand", "") + platform_id = task.get("platform_id", "") + + logger.info("开始处理任务 {} (keyword={})", task_id, keyword) + exclude_tokens: List[str] = [] + token_tries = 0 + + while token_tries < self.max_token_rotate_tries: + token_tries += 1 + reserve = self.tools.get_and_reserve_token(platform_name=platform_name, exclude_tokens=exclude_tokens) + + if not reserve: + logger.error("没有可用 token(platform={})", platform_name) + raise RuntimeError("未找到可用 TOKEN") + + rowid, token, phone = reserve + logger.info("抢到 token rowid={} phone={} token={}...", rowid, phone or "N/A", + token[:20] if token else "N/A") + + try: + # 使用抢到的 token 发起请求 + answer_acc, refs_raw = self.client.chat( + keyword=keyword, + token="wr8+pHu3KYryzz0O2MaBSNUZbVLjLUYC1FR4sKqSW0r7cpL+iG/2N5cdq9x0z7Bq8yrjvk/Mn0n+M7QhbW+SLnTf1mYlCDjkvCg10L2wwrJzhdhzA38AvbPtjbzdPvpeBjSxLo7TFAba1lm8N3q7qA==", + cookie=token + ) + + # 成功 -> 释放 token 回 active + self.tools.release_token_back_to_active_by_rowid(rowid) + + # 组装提交数据 + ts = time.time() + dt = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts)) + result = { + 'app_id': 'aa65700299848d6f21b969dbc9f6cf7c', + 'secret': '5588071d36f0bc61af849c311a03f2c4', + 'platform_id': platform_id, + 'platform_name': '秘塔', + 'prompt': keyword, + 'keyword': brand, + 'answer': answer_acc, + 'search_result': refs_raw, + 'screenshot_file': '', + 'run_status': True, + 'task_id': task_id, + 'rank': 0, + 'start_time': dt, + 'end_time': dt, + 'screenshot_url': '', + 'words': [] + } + + logger.info("任务 {} 结果返回: {}", task_id, result) + + if answer_acc == '': + logger.error('获取结果异常重新获取') + return False + post_resp = self.tools.post_task(result) + logger.info("任务 {} 提交返回: {}", task_id, post_resp) + return {"task_id": task_id, "status": "ok", "detail": post_resp} + + except TokenExpiredError as e: + try: + self.tools.update_task_status(task_id, "4") + except Exception: + logger.exception("更新任务状态失败") + msg = str(e) + logger.warning("TokenExpiredError: 标记 token expired (rowid={}) due to: {}", rowid, msg[:200]) + try: + self.tools.mark_token_expired_and_release_by_rowid(rowid) + except Exception: + logger.exception("标记 token expired 失败(忽略并继续)") + exclude_tokens.append(token) + continue + + except RuntimeError as e: + try: + self.tools.update_task_status(task_id, "4") + except Exception: + logger.exception("更新任务状态失败") + msg = str(e) + logger.exception("任务 {} 捕获运行时错误: {}", task_id, msg) + if "搜索次数超出限制" in msg: + logger.warning("识别到 runtime error 表示 token 问题,标记 expired (rowid={}): {}", rowid, msg[:200]) + try: + self.tools.mark_token_expired_and_release_by_rowid(rowid) + except Exception: + logger.exception("标记 token expired 失败(忽略并继续)") + exclude_tokens.append(token) + continue + else: + self.tools.release_token_back_to_active_by_rowid(rowid) + try: + self.tools.update_task_status(task_id, "4") + print('密塔 提交任务成功') + except Exception: + logger.exception("更新任务状态失败") + return {"task_id": task_id, "status": "error", "detail": msg} + + except requests.exceptions.RequestException as e: + logger.exception("网络异常:{}", e) + self.tools.release_token_back_to_active_by_rowid(rowid) + exclude_tokens.append(token) + time.sleep(1.0) + continue + + except Exception as e: + msg = str(e) + logger.exception("未知异常:{}", msg) + if "搜索次数超出限制" in msg: + logger.warning("未知异常文本指示 token 失效,标记 expired (rowid={}): {}", rowid, msg[:200]) + try: + self.tools.mark_token_expired_and_release_by_rowid(rowid) + except Exception: + logger.exception("标记 token expired 失败(忽略并继续)") + exclude_tokens.append(token) + continue + try: + self.tools.release_token_back_to_active_by_rowid(rowid) + except Exception: + logger.exception("密塔 释放 token 失败(忽略)") + try: + self.tools.update_task_status(task_id, "4") + except Exception: + logger.exception("更新任务状态失败") + return {"task_id": task_id, "status": "error", "detail": msg} + + # 达到最大重试仍失败 + logger.error("密塔 任务 {} 达到最大 token 重试次数 ({}) 仍失败", task_id, self.max_token_rotate_tries) + try: + self.tools.update_task_status(task_id, "4") + except Exception: + logger.exception("更新任务状态失败") + return {"task_id": task_id, "status": "error", "detail": "max token rotate tries exceeded"} + + @retry('主运行窗口', for_work=1) + def start_task_msg(self): + """获取并处理任务""" + task_resp = self.tools.get_task() + if not task_resp: + logger.info("密塔 get_task 未返回有效数据,等待后重试") + time.sleep(5) + return True + + data = task_resp.get("data", False) + # data = {'id': '53191c4f7aa4f0e443d6bce6fd241e67', 'project_id': '019be3ee7b907329bd9114880445cd1f', 'keyword_id': '019be4653db470b39d13449ee5f7afe5', 'keyword': '广州有没有不通过装修公司直接找工长的平台', 'brand': '匠猫', 'platform_id': '4', 'gather_date': '2026-05-06', 'gather_time': '06:00', 'gather_filter': '2026-05-06 00:30:01', 'status': 2, 'retry_count': 2, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-06 11:29:15', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-06 00:30:34', 'update_time': '2026-05-06 11:29:15', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} + if not data: + logger.info("密塔 没有任务数据,等待下一轮") + time.sleep(30) + return True + + return self.process_task(data) + + def run(self): + """主循环""" + logger.info("启动秘塔任务处理器") + while True: + self.start_task_msg() + + +if __name__ == "__main__": + Start().run() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..8bc2750 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,18 @@ +# AI Work Start 依赖模块 +# 使用方式: pip install -r requirements.txt + +# HTTP 请求库 +requests>=2.28.0 + +# JWT Token 解析 (kimistart.py) +PyJWT>=2.6.0 + +# 日志框架 +loguru>=0.6.0 + +# 浏览器自动化 (mita_login.py) +playwright>=1.40.0 + +# 嵌套字典访问 (deepseek_work.py) +glom>=23.3.0 +dateparser \ No newline at end of file diff --git a/start.bat b/start.bat new file mode 100644 index 0000000..b3eb9dd --- /dev/null +++ b/start.bat @@ -0,0 +1,98 @@ +@echo off +chcp 65001 >nul +setlocal enabledelayedexpansion + +echo ======================================== +echo AI Crawler Launcher +echo ======================================== +echo. +echo Input instance count for each crawler +echo Press Enter for default (1), input 0 to skip +echo. + +set /p "ds_count=DeepSeek [default 2]: " +if "!ds_count!"=="" set "ds_count=2" + +set /p "kimi_count=Kimi [default 3]: " +if "!kimi_count!"=="" set "kimi_count=3" + +set /p "mita_count=Mita【密塔】 [default 2]: " +if "!mita_count!"=="" set "mita_count=2" + +set /p "tongyi_count=Tongyi【通义】 [default 1]: " +if "!tongyi_count!"=="" set "tongyi_count=1" + +set /p "yuanbao_count=Yuanbao【元宝】 [default 1]: " +if "!yuanbao_count!"=="" set "yuanbao_count=1" + +set /p "wxyy_count=Wenxin【文心一言】 [default 1]: " +if "!wxyy_count!"=="" set "wxyy_count=1" + +echo. +echo ======================================== +echo Config: +echo ======================================== +echo DeepSeek: !ds_count! +echo Kimi: !kimi_count! +echo Mita: !mita_count! +echo Tongyi: !tongyi_count! +echo Yuanbao: !yuanbao_count! +echo Wenxin: !wxyy_count! +echo ======================================== +echo. +pause + +if !ds_count! gtr 0 ( + echo [1/6] Starting DeepSeek... + for /l %%i in (1,1,!ds_count!) do ( + start cmd /k "title DeepSeek-%%i && python deepseekstart.py" + timeout /t 2 /nobreak >nul + ) +) + +if !kimi_count! gtr 0 ( + echo [2/6] Starting Kimi... + for /l %%i in (1,1,!kimi_count!) do ( + start cmd /k "title Kimi-%%i && python kimistart.py" + timeout /t 2 /nobreak >nul + ) +) + +if !mita_count! gtr 0 ( + echo [3/6] Starting Mita... + for /l %%i in (1,1,!mita_count!) do ( + start cmd /k "title Mita-%%i && python mitastart.py" + timeout /t 2 /nobreak >nul + ) +) + +if !tongyi_count! gtr 0 ( + echo [4/6] Starting Tongyi... + for /l %%i in (1,1,!tongyi_count!) do ( + start cmd /k "title Tongyi-%%i && python tongyistart.py" + timeout /t 2 /nobreak >nul + ) +) + +if !yuanbao_count! gtr 0 ( + echo [5/6] Starting Yuanbao... + for /l %%i in (1,1,!yuanbao_count!) do ( + start cmd /k "title Yuanbao-%%i && python yuanbao.py" + timeout /t 2 /nobreak >nul + ) +) + +if !wxyy_count! gtr 0 ( + echo [6/6] Starting Wenxin... + for /l %%i in (1,1,!wxyy_count!) do ( + start cmd /k "title Wenxin-%%i && python wxyystart.py" + timeout /t 2 /nobreak >nul + ) +) + +echo. +echo ======================================== +set /a "total=!ds_count!+!kimi_count!+!mita_count!+!tongyi_count!+!yuanbao_count!+!wxyy_count!" +echo All started! Total: !total! windows +echo ======================================== +pause \ No newline at end of file diff --git a/tongyistart.py b/tongyistart.py new file mode 100644 index 0000000..f2a04b0 --- /dev/null +++ b/tongyistart.py @@ -0,0 +1,276 @@ +import os +import json +import time +import random +from datetime import datetime +from typing import Any, Dict, List, Optional, Tuple +import requests +from dateparser.data.date_translation_data import pt + +from utlit.retry import retry +from loguru import logger +from utlit.utils import parse_nested_json + +cwd = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +print(cwd) +logger.add(f"{cwd}/my.log", + level="DEBUG", + rotation="00:00", + retention="3 days", + compression="zip", + backtrace=True) + + +class ToolsLoad: + """工具类:封装API操作""" + + @retry('提交结果', 5) + def post_task(self, data): + """提交任务处理结果到服务器""" + # url = "https://api.granking.com/api/third/submitProjectTask" + # resp = requests.post(url, json=data, timeout=(5, 300)) + # resp.raise_for_status() + if type(data) != str: + data = json.dumps(data, ensure_ascii=False) + + url = "https://api.granking.com/api/third/submitProjectTask" + + payload = data + headers = { + 'User-Agent': 'Apifox/1.0.0 (https://apifox.com)', + 'Content-Type': 'application/json', + 'Accept': '*/*', + 'Host': 'api.granking.com', + 'Connection': 'keep-alive', + 'Cookie': 'lang=zh-cn' + } + + response = requests.request("POST", url, headers=headers, data=payload).json() + + return response + + @retry('获取task消息', 5) + def get_task(self): + """从任务队列获取待处理任务""" + url = "https://api.granking.com/api/third/getTask?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4&date=2025-09-20&platform_ids=2" + resp = requests.get(url, timeout=(5, 20)) + resp.raise_for_status() + return resp.json() + + @retry('更新任务状态', 5) + def update_task_status(self, task_id: str, status: str): + """更新任务状态""" + url = "https://api.granking.com/api/third/updateTask?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4" + payload = {"task_id": task_id, "status": status} + resp = requests.post(url, json=payload, timeout=(5, 20)) + resp.raise_for_status() + return resp.json() + + +class TongyiChatClient: + """通义千问聊天客户端""" + + def __init__(self, cookie): + self.api_url = "https://api.tongyi.com/dialog/conversation" + self.headers = { + "Host": "api.tongyi.com", + "Connection": "keep-alive", + "X-Platform": "pc_tongyi", + "X-XSRF-TOKEN": "76d46e4e-87a0-4a76-8811-8ee300b56c4d", + "sec-ch-ua-mobile": "?0", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36", + "accept": "text/event-stream", + "Content-Type": "application/json", + "Origin": "https://www.tongyi.com", + "Sec-Fetch-Site": "same-site", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Dest": "empty", + "Referer": "https://www.tongyi.com/qianwen", + "Accept-Encoding": "gzip, deflate, br, zstd", + "Accept-Language": "zh-CN,zh;q=0.9", + "Cookie": cookie, + } + + def _build_payload(self, keyword: str) -> str: + """构建请求payload""" + post_data = json.dumps({ + "sessionId": "", + "sessionType": "text_chat", + "parentMsgId": "", + "model": "", + "mode": "chat", + "userAction": "new_top", + "actionSource": "", + "contents": [{ + "content": keyword, + "contentType": "text", + "role": "user", + "ext": {"deepThink": True} + }], + "action": "next", + "requestId": "cdd3936e15364cef8415f14e1daa0b07", + "params": { + "deepThink": True, + "specifiedModel": "tongyi-qwen3-max-model", + "lastUseModelList": ["tongyi-qwen3-max-model"], + "recordModelName": "tongyi-qwen3-max-model", + "bizSceneInfo": {} + } + }, ensure_ascii=False) + return post_data + + def chat(self, keyword: str) -> Tuple[str, List[Dict[str, str]]]: + """执行聊天请求并获取AI回复""" + headers = dict(self.headers) + data = self._build_payload(keyword) + + ai_search_result_list = [] + answer = '' + + try: + with requests.post(self.api_url, data=data, headers=headers, stream=True, timeout=60) as r: + r.encoding = "utf-8" + if r.status_code != 200: + text = r.text + raise RuntimeError(f"Upstream status {r.status_code}: {text[:200]}") + r.raw.decode_content = True + for ln in r.iter_lines(decode_unicode=True): + if not ln: + continue + # logger.info("SSE line: {}", ln) + + if '今日超过调用次数' in ln: + logger.error(ln) + return ln, ln + data_str = ln.replace('data: ', '') + data = parse_nested_json(data_str) + # 获取结果 + contents = data.get('contents', []) + # 保存搜索内容 + for content in contents: + content_type = content.get('contentType', '') + if content_type == 'referenceLink': + search_result_list = content.get("content", {}).get("links", []) + for search_result in search_result_list: + dic = {} + dic["url"] = search_result.get('url', '') + title = search_result.get('title', '') + dic["title"] = title + dic["body"] = search_result.get('body', '') + dic["host_name"] = title.rsplit('-', 1)[1] if '-' in title else '未知' + dic["publish_time"] = search_result.get('time', 0) + ai_search_result_list.append(dic) + if content_type == 'text': + answer = content.get('content', '') + + return answer, ai_search_result_list + + except requests.exceptions.RequestException: + raise + except Exception: + raise + + +class Start: + """通义千问任务处理器主类""" + + def __init__(self, cookie): + self.tools = ToolsLoad() + self.client = TongyiChatClient(cookie) + + @retry('处理消息任务', for_work=0, time_sleep=60) + def process_task(self, task, a): + """处理单个任务""" + task_id = task.get("id", "") + keyword = task.get("keyword", "") + brand = task.get("brand", "") + platform_id = task.get("platform_id", "") + + logger.info(f"账号:{a} 开始处理任务 {task_id} (keyword={keyword})", task_id, keyword) + + # 使用通义千问API发起请求 + answer, search_result = self.client.chat(keyword=keyword) + if '今日超过调用次数' in answer: + print(f'账号:{a} 今天超过限制') + time.sleep(30*60) + return False + + # 组装提交数据 + ts = time.time() + dt = datetime.fromtimestamp(ts).strftime("%Y-%m-%d %H:%M:%S") + dic1 = {"2": "通义千问"} + result = { + 'app_id': 'aa65700299848d6f21b969dbc9f6cf7c', + 'secret': '5588071d36f0bc61af849c311a03f2c4', + 'platform_id': platform_id, + 'platform_name': dic1.get(platform_id), + 'prompt': keyword, + 'keyword': brand, + 'answer': answer, + 'search_result': search_result, + 'screenshot_file': '', + 'run_status': True, + 'task_id': task_id, + 'rank': 0, + 'start_time': dt, + 'end_time': dt, + 'screenshot_url': '', + 'words': [] + } + + logger.info(f"账号:{a} 任务 {keyword} 结果返回: {result}") + post_resp = self.tools.post_task(result) + logger.info(f"账号:{a} 提交返回: {post_resp}") + return True + + @retry('主运行窗口', for_work=1) + def start_task_msg(self, a): + """获取并处理任务""" + task_resp = self.tools.get_task() + # task_resp = {} + # task_resp['data'] = {'id': 'eb457930e154753c5964404e7a8e0d5d', 'project_id': '019df74fec257337813e2651180be6e0', 'keyword_id': '019df777e80471ed9e7b862d898b085e', 'keyword': '点外卖有没有省钱技巧', 'brand': '美团', 'platform_id': '4', 'gather_date': '2026-05-06', 'gather_time': '06:00', 'gather_filter': '2026-05-06 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-06 11:39:42', 'screen_url': '', 'priority': 1200, 'start_time': None, 'end_time': None, 'create_time': '2026-05-06 00:32:09', 'update_time': '2026-05-06 11:39:42', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} + print(task_resp) + if not task_resp: + logger.info(f"get_task 未返回有效数据,等待后重试: 账号{a}") + time.sleep(5) + return True + + data = task_resp.get("data", False) + if not data: + logger.info(f"没有任务数据,等待下一轮: 账号{a}") + time.sleep(30) + return True + + return self.process_task(data, a) + + def run(self, a): + """主循环""" + logger.info(f"启动通义千问任务处理器: {a}") + while True: + self.start_task_msg(a) + time.sleep(random.uniform(5, 10)) + + +if __name__ == "__main__": + cks = [ + "UM_distinctid=19ba052efa8581-06dddb8c662afe8-26061a51-4b9600-19ba052efa9883; _ON_EXT_DVIDN=eCy#AANaRJDxEVb8bqwLxl0KH/LbC9Qr4fNXN8jM0ilCEryuKtBG5KxxupJRI201LiXuKkA=; _qk_bx_ck_v1=eyJkZXZpY2VJZCI6ImVDeSNBQU5hUkpEeEVWYjhicXdMeGwwS0gvTGJDOVFyNGZOWE44ak0waWxDRXJ5dUt0Qkc1S3h4dXBKUkkyMDFMaVh1S2tBPSIsImRldmljZUZpbmdlcnByaW50IjoiNDkzMTBjMmY1ZDk5ZmRjMmYwNmJkMjU5MjYzMjAzMzIifQ==; tongyi_sso_ticket=64kQ7YnAty8knctY0wC4BRzmgpubGDzpf8Gz1g_BynogsOH1apRX0qcdzyjCw$oV3MA93SvC4gFR0; tongyi_sso_ticket_hash=tytk_hash:1086e3f695c3ed852ed9eb88d0a14438; theme-mode=light; _qw_bx_timeout_v1=1000; xlly_s=1; _qk_bx_um_v1=eyJ1ZCI6IlQyZ0EzZEh3ZFdqOUFoUlV2Q2Z1WWZQOUhOekdSVnN5VEhLTzJmMV9zNGVGOWw3YzFDRVJuUXlsTjB3c3NxNzVDbTg9IiwiZXAiOjE3NzcyOTA2MTEyNjR9; JSESSIONID=52154072221ECD03C5145FF3DCD02AC2; sm_uuid=7917b46d4e5f49dea2557d62e77f2cad|||1777270865; sm_ruid=7917b46d4e5f49dea2557d62e77f2cad|||1777270865; isg=BFRUK5WUwehqr1UHZoMeoFJjJZLGrXiXguk40u42HV3-2f8jCr4wJk6b2dHBIbDv; tfstk=gJ6IlXvpF20ISIZLy2rZfGmrVk9Wplyqv0tRmgHE2ppKy4Iv7HSUtgu-FNTNLeSepUi5ziLKJUhpXGKcr3E3ZBhWXH-Yx4Fo9Rd5o30-weLKXfQRrub5qkxJyaQWz6Pa3MjHELUVN-yVxpH09hQIeYnT23KrelRpSgfS4LU4u-lZXB4eeM8a3gROXFxSpXKdyFL9YFK-9LQJWCKv02pJeaE6WnxDyvdJwRK92FLJeLQRXltyWHpJeaITf3cmYVtrRhSQ2dNXl8DYDGTseYB6XzxdAbHDvt-BOEIdd1f1CTABkMLsFyKYLf8WStUa1GbN9w-GP-a6BiC6peWTkYTPi9jOCBn-sMp9RiA1syM9bQTC69ds2YIHQ1bPNwaIteCF5Ix960wDbZ8Ox9C_qVIdue9pXCyYcGdR_9AcLPHBHsjeL_QTCv_A43M2lSFtNcOmFhT4flGoZUpDdFVUyP0H9hxL3lZs7TApjhalUlGBgBKMvHq_f2fc." + , + "UM_distinctid=19dcd9ce400560-0f72c9a22d56308-26061e51-4b9600-19dcd9ce401f70; theme-mode=light; _samesite_flag_=true; _qw_bx_timeout_v1=1000; xlly_s=1; _ON_EXT_DVIDN=eCy#AAP69RjfUKviqCemYO4tUEEbXeNf0IeAt7xAzQGjSxbQ4DTdN8VLAwl2+uh+Nc7hK7s=; _qk_bx_ck_v1=eyJkZXZpY2VJZCI6ImVDeSNBQVA2OVJqZlVLdmlxQ2VtWU80dFVFRWJYZU5mMEllQXQ3eEF6UUdqU3hiUTREVGROOFZMQXdsMit1aCtOYzdoSzdzPSIsImRldmljZUZpbmdlcnByaW50IjoiZjFiYzg5OTA3YmE4ZjlmNzlhYWY5MDZkOGI4Yjk0ZDYifQ==; tongyi_sso_ticket=mG0YF*jzmRq19aotQ8mEwpfbGzzg_8yn1gsBH1opRO0qadzXjCc$oy0bNs1h*5poA2RM9ZsXXxZ_0; tongyi_sso_ticket_hash=tytk_hash:7c21ff5373b02f1999eec4ebaf3d4c3e; _qk_bx_um_v1=eyJ1ZCI6IlQyZ0FhVTBLMG9DNlBDbmF4TmhYSFg1QnBsa3Nxb2NtaW9HTFFZdHZ6dnR3NnNUalpOUHNoU0VRVGFsT0pJSTFHMzQ9IiwiZXAiOjE3NzcyOTEwNTQwMzN9; isg=BGBg0WgjHUyX3qFIiyOQ1uUSMW4yaUQz3nWsPtpzuXsO1QP_hH85wlMjbX3V5fwL; tfstk=gtFjkiGx1nxb_tbAXn7yPzqNVLhsfa5ekFgT-Pd2WjhvXhUK4qzVnP-91uizgmzqMcT_bynvDcpxyz33jVQcIxpsyqudohBMH_H_xVx9BmnvyLETjNq_SZ0tXlEsb-WPTr4msfIUC65UoWbICbrsHqL-wz0MHnBrHDzgVFsFY651HUh1cMzqaTujeVm-kIn96aM-72ltkIHOP03s-dKYXfQ5P20wHIHt6z3--qGtXlhOPzno5f3YXfQ7y00tGY-S7ngzlNh5Qk-e754xVCdTM1DoA3ixr4FSlxiKe0OOz7gjhDUY90mrw4FzNvky7MG8-8rxPX16wjMQiWM8MgAsEli-CShwRCU70zeECSQGnzNscvFxFeRsiz0TXAwlABujg8MQG-bM2rEEcJh07es4PvwSK4HJ5Kh4LyPipSCXx0kn5kgQcnsPsBoCpTp6PvAsPD75PdviXXcjqEE568MxrqCFPatzsx3oPXVNPKaZH40xoa_WmJf..", + "UM_distinctid=19e05ace6c8c33-09261779579fda8-3e2d0c10-4b9600-19e05ace6c9238d; theme-mode=light; XSRF-TOKEN=981723fa-0ff7-4547-aef1-cc35a3595a27; XSRF-TOKEN=981723fa-0ff7-4547-aef1-cc35a3595a27; _samesite_flag_=true; cna=YUmEIiHa0V0BASQOA6JJaFj0; xlly_s=1; tongyi_sso_ticket=i3jTmA0ScpUF9_URVf8laU62yErIoFfA5fbKzzp_8Gn1gsBy1ogROHqapzX0Ccdoyjpp$dlMt9Vx0; tongyi_sso_ticket_hash=tytk_hash:7dc1a46667e392197baa4ee790996810; _qw_bx_timeout_v1=1000; _qk_bx_um_v1=eyJ1ZCI6IlQyZ0FMdEc0OTAwTWpBZGpGekJyRWFuU2MtTW43TnFkcHZMR3dMUzdmbjZfRFNxT19mUDBpb0tQWjFoUF82NGg1MEk9IiwiZXAiOjE3NzgyMzE1NjM4MDB9; _ON_EXT_DVIDN=eCy#AAN+t8g6Jgo7lk9g6nVWuKQG41eJGKhn3xtt9gIWttxDf5dnraiMiEYZBPXH9thFpLU=; _qk_bx_ck_v1=eyJkZXZpY2VJZCI6ImVDeSNBQU4rdDhnNkpnbzdsazlnNm5WV3VLUUc0MWVKR0tobjN4dHQ5Z0lXdHR4RGY1ZG5yYWlNaUVZWkJQWEg5dGhGcExVPSIsImRldmljZUZpbmdlcnByaW50IjoiZmM2OGNhODQyYmJiYzhkMjkyNzg0MzY5MzU3NGJlZTAifQ==; tfstk=g5OjdRwoLoqju-gxXouzR4JQwvC1C4lU1P_9-FF4WsCYXlLd4Z8qnFrT13sygi8VMrvkYeF2gxfa1sfG6DoETXz2o1ft0wZwHrfRJNbt_iFOwsbNeM0atX8DozUbX2J-Tf9vHq_OXhBA2TQG2NITMhCR2Zj8MNFAWu35SgCOWSC9ybQ1JSQAWhL-PNjRX1BvX_35SgIO61hkiu_aca8jSWtDk0ocdEI765dxstsBqRP_1Q_fhCLcVe8eNZ6fvOwtnWOv4Fd2iTDzE1Yydh99jvylGFpAMw8mG71pkLR1zCuaCiKDNUdcFyPFhdQ1p1B7W5L5igtH16hLVavJuddDcPNOoIRFCMXSW5XNwBWppnai-UCAWhXH_DVcDFLHtp5Ia-CpPdKBCglLTMNs1Ra5K5_5Y4g7IRbXb_x7eEplitQlkXuSPuRGHab5Y4g7IRXArZpEP4Zys; isg=BIWF_lLhQPmoH2SlrMQVsLz2lMG_QjnUoqsvY4fqVrzLHqSQT5SNpW70KELoXlGM", + "theme-mode=light; UM_distinctid=19e05b28ed7955-03ad77104f659d-26061e51-4b9600-19e05b28ed82437; _samesite_flag_=true; cna=1EqEIqjt7DoBASQOA6IeP4xK; xlly_s=1; tongyi_sso_ticket=tzORv5J3LepQEjEdUDyvNFsFZo4pS7yOCOmHb6_zpf8Gz1g_BynogsOH1apRX0qcdzyjCs$oToJZ0; tongyi_sso_ticket_hash=tytk_hash:e82adda9bb503f4191b289ead1b14d63; _qw_bx_timeout_v1=1000; _qk_bx_um_v1=eyJ1ZCI6IlQyZ0FGdTNROTFQcy1iWHhObUc4ZlBuZmRHREVpaGpoVXBaa3ZmSTVLMXoyM0ZadElWVEtONk5JbThzcVdFay0xR289IiwiZXAiOjE3NzgyMzE5OTgzMjd9; _ON_EXT_DVIDN=eCy#AAN0QZ7GfNvzHKFVXascdh5MAeWZDi5pOITilZF1SufTkDmYnCose670VWvcyAexoyA=; _qk_bx_ck_v1=eyJkZXZpY2VJZCI6ImVDeSNBQU4wUVo3R2ZOdnpIS0ZWWGFzY2RoNU1BZVdaRGk1cE9JVGlsWkYxU3VmVGtEbVluQ29zZTY3MFZXdmN5QWV4b3lBPSIsImRldmljZUZpbmdlcnByaW50IjoiNTUxMDQ4YmU0MDZlZWExZjMxMjJjMGI3YzU3YWQzYjQifQ==; isg=BNTUmYKXQXq3K9U2QnTuqI0BpRJGLfgXAmm4Um61Id_iWXWjlj89p2caWVFBoTBv; tfstk=gTBiQsMR71R_Hr0UEqJ_tLDrFgNL6d9X_ZHvkKL4Te8IWVHO0Kyckw3O6iI2oZbpRZAbfEL2oZIV6ke8eGs6hKu0y8eJAwVzhN0wbAr2Tn-7vhuDFIiJhKz8JXH218vfSWF1MISUxnKj_E72_2ueRnDquZ8wT2-kVK8VuZJE83tq3AJ2uMkeRnJ2uZJ4xM8BmK8VuKrhYbqE_UK2W9zWTSzElLYhKhAMzMVS3xvEeC8PbeD4z9xGuUSw-xkvzYWoqMjTSYspCT_k2NeEIaj5dwxFz-4Hhw1VunbUFqp1wN6WtMNrLMpMRQ8FUVlwqdYMaORI4usyg6XHBOzjNMIH7Qvd9Wa9MdbGNUOaOy_cxFQVIBugJECRvORhzyHhlIf5DnbgIA7P4ThEacAjhHrALjGX_HtHy8q3FV3UM3zTxkcRcC-B0_E3xjie_Ht1LkqnwuOwAhc5.", + "UM_distinctid=19ddcfffe19a71-0c0744a63b8dda-3639313d-384000-19ddcfffe1a1453; cna=q995Iue97B8BASQOA6LqO1pE; theme-mode=light; XSRF-TOKEN=92291628-a38e-4df2-9aac-d6b57f792715; XSRF-TOKEN=92291628-a38e-4df2-9aac-d6b57f792715; _samesite_flag_=true; xlly_s=1; tongyi_sso_ticket=OH1apRX0qcdzyjCO$oQ4ZwftL86kfpryzHZDMYSOyYmUxtIy8120EXqC9SxFpfbGzzg_8yn1gsBo0; tongyi_sso_ticket_hash=tytk_hash:c675b29ed9350cb9b78985f3fc3dbc38; _qw_bx_timeout_v1=1000; _qk_bx_um_v1=eyJ1ZCI6IlQyZ0E0SFh0SFJZUi1pTUdsd0pMVW54dGpoTW42YzBsU01yUHd6WlU4RTkwYWZnQ1dnZV9STjJqWUk3RHQ0N0N1clE9IiwiZXAiOjE3NzgyMzIwOTkzNjV9; _ON_EXT_DVIDN=eCy#AANZeumXYKgKaJ1C0WYy/5zae+9aEypxdTTXRjAdaEFdbxEbsWjTyHOboXBq7dY6HoA=; _qk_bx_ck_v1=eyJkZXZpY2VJZCI6ImVDeSNBQU5aZXVtWFlLZ0thSjFDMFdZeS81emFlKzlhRXlweGRUVFhSakFkYUVGZGJ4RWJzV2pUeUhPYm9YQnE3ZFk2SG9BPSIsImRldmljZUZpbmdlcnByaW50IjoiNzNiMmRhYjNmODFmMjNiMDcyNzlkMzg3YmE1YjQ3MjAifQ==; isg=BJuboV2fdt_EYYokjKJgrYBMKv8FcK9yXXbrqI3YKRqxbLtOFUMfwi8vBsxizAdq; tfstk=gRz-arc2stXugv_fBUj0xU5TpICmyiVyZ8P6-vDkA-eY15JoA0qoJkF_BDmCU44LH4z0qeDlU2FQI2BGINbga7orROXGME7Hd2GC-vsmV_VGJ36GINbcVIgdeOVkiQ8icXkjNXTIAsHjtXuINbMCMxGK_H97d21AMXh6NHMWRjij6XgIdJgCMSMq92G7d21YGxlIZ3C-3aGwJoz5u71ADSLBRrh-ciVShi2LkbnmC7aJReGsw0H_NxW84ssEcWoL8B8KY7ZaLfwWFOmzOoexw2QDVVNYARh4PNv-guVbsxN9TePryrUYAmC5PS3-ec4bnQKIykwzJ0rJT1PjP-rZQ0sV3jUuSDHZDK67iSHSXkel3eMuXSwxjrvDS2y4AJGLhLIznP4TizpiBXx5MsKeY0G2yhMOU2AvUClxI_iWYHoTujHGMcxeYmUZMAfJ2H-E0t5.." + ] + from threading import Thread + + T = [] + a = 1 + for ck in cks: + A = Thread(target=Start(ck).run, args=(a,)) + T.append(A) + A.start() + time.sleep(2) + a += 1 + for a in T: + a.join() + + # Start().run() diff --git a/utlit/__pycache__/encrpty.cpython-310.pyc b/utlit/__pycache__/encrpty.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..84909630a3123abce0657cd8175bacac71d27dba GIT binary patch literal 3046 zcmZ`*Npl>x6>gx>vvIhH7PZ)xJf>|~Bh5mJn=ERhMwG0QMY%MixYWfItJwf&n(U2e z49V#lo}{XrbV%iBr;0ozRk`Qa;F^nhaS~^rtPedSg;L_4!Z!~Oz{A4>@Zkl+!#NGU zUry{fzaG)F->Ay*Plw8FD3J?5HHuu#?EfPZK^?o;(@h;Io$eCPFpWe;Zput0{nKWe z5;H>$GfPu6{X#QyY=~(G+Mz}>C$;Cu%+oB*fqs|{(LDT*P*m57!$&Zqwo*h=Us|rK zztE!580fa0t>!lK+HI%3Wp8!tL^*wBW_E6V;p)|e`MKGdE7LYo!v`OMe*;PlN^~1Q zXq%`DtD*QMKEQ|CJ`(x?5r)t=QzCt+@8d2$$cStgQT;hSMEknP9Sn8#Lv)Zo)WAEk zQp6IKdgvN>mWx^zcw<0z_E3@nKv;EOBMVYcvBoZ-6s3k0!vYoKSxYVJ` zuQWaZBYT(cUR#Y@POBZP?Rl$~v$h-Xt+hy4T&%W*>xfk~Q7AftYldgqU#|p&s_+*3d`cpm*L#aWDOaO}Z;V@905^AVzrWv)VYD4KT9r-2? z0fvy%(XIv|9it~+l6_3a4={a)o_wKo@g{`-P`eAq;SfR1I7rcnL$rY*)TdVBGc6&) z=vuYfaXOY?S+^Y8uGoQB?Tx;r>E*T<3(J=4?64lbH6_t>FL)Hhj_X?0xyn@G;#ZDO zgWagG(kM(%Ri+jTpqQUsEbPtC77I&Z=(4Za`a?%l=VlfvGxLRu4?k}_`l3{Doh??l z&+M(BSg5sl;IZoT>`VnrfYrLSVR2_LB>stDd!pJBo?EiOpkrIY3H<7w(p=tqTkE-t z+c%~vpOqZXYO<=e<7^DXUA7*+(uRJsbg6nN>3a1Ivys#E87;FtyJh)JwzzX+eJ1I) zAc-IN%*^;;vuOzy<6F~k69c>LF<y8yseHWlITWq^NPB}l_`k1uz9MZgdlbSH0p~or!WS2(}znOv?-(L{z2+5)e(` z_%dxLT_R~fD7}bR)NFc_iK5QSAomr7vnYJqCnK5sgmR|p(Ys#-rwTCXLe=I9(< zq}S<62N({{K|JjVKSK$tesvY=n zIHNvm>|Eg=LUj3A1(OQi1&GK0d;dbXz8eAeWO~4D@z7nixZ~1b46;BwhKZpfQOJk2AjrqBNKXub)gmVH=Dy9-sRGQ~kZ*MHs_BP;f~> z0YIkuH&PPCy)r8t4;abvLViZI=4cXqwE`1w3aLq=)+}KYq6oP20hL1oaRvM|v!UCD zH9epabc8`iDkU@1eQjjs2F?CPAWu+u-5RZ+-E4`vutYmLQXFCqJ5j=}_3gIB**$4^ zK%uTQmha5YHOx^+IpAfhznb36Yye@eIW#hdEN}^Y_XT)`rW!?Jo@KtZ?y?oO+W@a? zu#1ZD?+2Evrm4HZ?!W<=hpY$oss?8kM(3Oe#ynFmv?O0Xt~ZJXFM)G?0#Zpu!a}?X zQZXfU2Oa~WLdWM++dP0YLJn$vPjyL4BRLaEP3HOx2Z;z95N6)})ag;aIv}zURa82cKL8X=?W=Y0p zzBAB06^>i^(xU3MO0ql-8Mnrh$mErzGO8ru;_C5{NF-#NOmb{x$r_XABy%0Mx$Ux> aD%XvaDx+m^9_1l*BbcBJ9y2m1f9gMl{9hUX literal 0 HcmV?d00001 diff --git a/utlit/__pycache__/retry.cpython-310.pyc b/utlit/__pycache__/retry.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ae729052d1c4035bd0e1e1cd704957df151e5d2b GIT binary patch literal 1030 zcmZ{jL2DC16vyYy%qE*+ORH_I9u&Pu1bY=iDGIe0p_dklHKi<>jV{?_)7cHNVI$HM zlZ&DV9;_7$@lYseL9n17MD{94o1@nr#P>Ef^x}i}pEo=6elzoC)*BukVrVyho;a@s zW51|#*6o=NG%!k~BVR@L_fZtod5YDhS`adah0unVKr8FfP%N`W!gD1W99RG! zc}wi#;g?zInq-04m;qLoz-ki#Q?kXknKDAT&30r1XPuq@01H-^Pi4vIw^gXJkgLRP zR_86;LxJo0bsl0|F!cQrtcw9Lxg&_COe*h!rdljjE}>>RKQ=puhezMvbU(cBHD7e! ze(AKgj$S=KfrmA|n$dLD3e|Nr(`mo!?(ZId{?A|OebWM*c&GmU~^d!oj&|?(Sp)|d;H1r22Fpg3KQUbd^NdmVaCu>vx zTT;_Cq-7r%qlv1gNN7l3B#G%p%%HpTY57r*mo;5?TJ*DNMAMph2`MUl;CZgE=_k@D e5}MqH#^hLHvN==qRK>Mt=?%r(KF3TL5q|-I0`zPE literal 0 HcmV?d00001 diff --git a/utlit/__pycache__/update_db.cpython-310.pyc b/utlit/__pycache__/update_db.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6a8a474db56237094b09ce8afa809fe95d0c2dd5 GIT binary patch literal 3869 zcmbuC|8o<^6~OPiPO>cXEr5X}S2s{JV?bXl*)nxgV;`wAMy8f%29=EFbh`q@`eOD@ z*jD6}A<&o>3eyR+2_aaWgh{5I!Z4lbgdxcv(EJ7WYa)Sv;)l+3I_?+xcF*4+q|HoE zzIVHOyYKDozV~_SN_)GHgR7p~S$Lh}ndi`UBw+=~a4Q&OCx<*xR^j%-?ZcjY0JS0iSvjMw^lZl>hEZ6_3!NN{ z@L_LWMFG@tR?7I$4yFM{=Owfbt%s3q*pD_$2n3;xnRc`(6Tm8N#{u*V+Kjd!5pBJw zWIFIV)QLOZ6nGA|LA!{yU4$~?Q|t~ty8vIrC4-_PjTS81k%kMV?WkjucA-)>ijHEK zcHtCuJSdl)H0%?OY#X^EcI3$ul`?kPCyR!iuaHu+R~IeW?|RtbD~i+P~|9|r9n=&ROMGQ#>Otd9r!NOifcBDIst zi>#+IuQoWIdj)>b(@V=>i9L}w#g#*AZ1`ZjnCG9cQ2YNZu+eR7et!2G=p6IXx0#(p z*T^^X1rM|4x!UtgSNs3cb@Us)6|}X@{DtRcy`YOf!y$3j`-XRlpW>#zwl-5-Fi_nN zTjtZ?YF+wu^W2B6xvQ;fe`;O5-Mo0Eb-kf6H~8}O8P;Ww*1UP9_5OPg8XvXZJFgu{ zj{NwDzMJ_^xAvI-1hxBjZ?>-AczAEF^{bB_T)h17-uZ|3E_`+G-PX0wTNi)V{PP{q z@ZgWPo1b2JQhV!8V^#Z#o(s*lK5bpO4H}x~=9;&!Ke%Y1B4c1#XK5U);%>5Fu z+q`_UIrq-e7hb*npmAZ@=!4JSZeDv|OOqhK*6yu%SM5WPDstrnBjhLwYJbcSH`>8si8PIY;j zLG34lqet|Vwi{-?^cSpcS<*B%u8r%5M+b*=S834i2o=kb7;zLl4P>$$k9D$GuyNG! zn3ZxF1Ev(SN~{WTJa`(LRU12M9@{1ZlVVm%rGo9qX0c-7OkkvJ55*Agjk0-m?#9_9UDME4i zqQs>i#;7|Deoz-IiKYTdU*IjU6?hAzn-_qg@Mc!7HENgY(!7YI1`m7`hPhX#7?C9; zH~3jk9THq8<*kA|@bm&fC8Q#6Lzwl|J;(>F&am;Tob%MxC00v}>uvQma+LLP`4s>b zdh5P=8{$`3Eu)TJZdN|It-N!Mwsp``U83@;uAhBdU98`F#>@?%3FbxZF7bE8BCLkO za)Zn=g+%iUtc2)3Qyj2Uow)<-^aDF(XlEG&80wq#zu~701v`(80fKIZQ79E?JM(m?Pft&G&30?ALw9(9e3fZqBwApR7J${r z$OrV7Mv|*R2xkp?oM2%{C{dGS9Z0gCiVak31hGJQMmACL3>BL}Ku~X^o(heM?|{gtq*5&A409sbzJ>-t`o4>b?}Bi=lcZu|%fiUv$?7auQ9)jy zeRonp`QVE0(V-i1)#5~UZTwsP&~7C`NFIp~u#lH{AArCIWtI0oh68~Y{EVsz%!2_fEs*hzv$Z?J`X%M4i5$1o)r=D;p|H&#QGfN9pfGxFX z2XG(eI1^)Mxgh zP)|M`8?BLVF@OXGTz8Up|yG_iNcKK84G6Ia@&4 zBZtN!=xB24U~M22k6B?Onh0Z1M!-5Kgoz}2a(UE~FwLGsBC=nzsF~h)Pc9eg?LpC8 zPa>Yr;arb_V%RYH`l7LXXunp4UhzaE7VC}15kk3KJZJQxd^iz`nL+7kJg5cShzA4Z z<3-#b6jrxB$TOk^g=8|g-u0p_bYm2IW)gZ68o`9-ZbD<%5iOfIQm#@dy188hPhz3I zvYqt*uWZ&4h7XV!9U)XENDm#q>N~8&c%**6R6*4u{sCpDMNz48D!+;ER(6Fq?Nd7? OLE<-wK7Ji9{rx}3fGtG; literal 0 HcmV?d00001 diff --git a/utlit/__pycache__/utils.cpython-310.pyc b/utlit/__pycache__/utils.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8523c2361cd7701bc1e1d8ebf9993869cfa41a09 GIT binary patch literal 3147 zcmb6bT~iy^_1?R?(n<(W95;>Aq@zrm2DK4`J#{+)>LiWRhdj{E;MNlbS0i*+XpN** z?ykU4sp9|+q{V?abzq#C3^a*d*D=_wI;WST@{!Ek9+p{EtndOy&np6u~ zQlki0@_|Ai8K5LYLn`0HH6zFahRTD6&UHgGLPpq7v&ue_)p>}Ar?g}XZ{d+Cl8o?H zz}1alR^@HHeM(KX@+f}pb6=VGpW2(9Fy8Fi>6hKQ>pW`V>o8PI3o4q zwpC2oj*vlaWYgumBSXT-l!a}M7&0IXr!0yY1^F}{4Q4b1p4lrfaO%LN9FkS1$u!L} zu5fiK@;0du`>_h;TA7Ny6;Q_{{bW4s&?QzO%e1P@kcu)%kHV=+9L1r>)hrwP2_;pP zlJT|%<^BpSQj;7d0rDE*T2=k6+TWN*DbQ(SzuH0Z>VKmcCGkM{pLl~9JoO77)jphe zKR)MPop3*!bw62HKR5Mi|Iho}%M0tDp1*VBFJTX_yOb8`LTuAi-Ld-lH+|Y&_{g?_ z-moWNH^f}6U;CuCaJ_!}5AFva0_Dc%i}jU{-IHq%3uzj^J62my`9``mSn9n|}u+{9??>Sw(mCX8r22CqydN;BldY0WuVZ&4DDW{xG=@qiXmdRl<3BL5;3c$bZ!O`OY_hB3i%A)=w@HfuR{! zBvy#?j9J=nYpr+I#C!%o2gMt3_}8>g)>lg@+OXE-tH`o z$#5?>Gfu`Tln$X-8?E#N89(T8OBD^3P^T|xYrn-|+m(=$3a@vi zy|5U=eOMF^!@YUa_O*Nx_MVn||4%KO9OAkR zo3>d5dlWNfBJvgx-T9OXil*Y2lSH+ z9T_Y6s)%oS`&Uk6jFN-3PZJnPB7lRZ5SmO?u-(JX)fd8xZwM`4(XLb!qy~ z?(hCoUwzA+xda7cW8qqD=C4o<)-Rk{zjdL0dlA;P)l2^N?%J$-^LqV@Piv?Dc<08g z*k)~y`Dy>v$qB!RxpNb>vsb!30a*LN#f4HVk%%=V++CZgoxKJ~wVC&8pRKG<+=TVr zwYPnGzij#RJ7jn~hd}#SYKi?67tjgkUW7ovAeXIKVHKJpq5p)Mo2?jc*gazvM-1Vl znixL@4mSErZ_yz##CMTnC~M{o$TcUo&D=5W1u-LuvZDv;D+AI11GGdkx-A+_+YD zKo{SkE6eLE3$^#B?|gn8%Ch_3jC*5tN8xW?2@1c5SpVCq`{k5J-@RGfo0Q1q^qcOf z%k|qIxHH$c8W#2f8L)Hd0|$R3nHV%l3_k$^GMG!-xx6_jm7*~!RjXtar7Daxmw|E# z9V$aP;{-Q{ATr{rcm{M&>PVA;GVj%J5kV@8QV_f&7u+OfYKN5j=8g^-1$p8_@O^GKN=t-?|k`t_x!}&wR4^l z$OWHg6A5l72Fs3P6%!dNZ;9^Mce2@RPi*thF-|y5$PY94>xnf81}(u2u?ZDJgXxa0 z=VFb2=l%ono@aMwDvHG-zFY12)9x9JL0@ycJ>rf((~= for_work: + break + + print(f'[{name}]:多次请求失败') + return False + + return wrapper + + return decorator diff --git a/utlit/update_db.py b/utlit/update_db.py new file mode 100644 index 0000000..712ef00 --- /dev/null +++ b/utlit/update_db.py @@ -0,0 +1,146 @@ +import sqlite3 +import os +from typing import List, Dict, Optional + +# 假设 DB_PATH 和 DB_TABLE 在脚本顶部已定义 +# DB_PATH = "./kimi_tokens.db" +# DB_TABLE = "tokens" + +def upsert_token(db_path: str, table: str, phone: Optional[str], platform_name: str, token_value: str, status: str = "active") -> bool: + """ + 插入或更新单条 token。 + - 如果表有 UNIQUE(phone, platform_name) 约束(推荐),会替换已有记录。 + - 如果没有 UNIQUE 约束,函数会先尝试按 (phone, platform_name) 查找更新,否则插入新行。 + 返回 True 表示成功。 + """ + if not os.path.exists(db_path): + # 如果 db 文件不存在,create table 需事先调用 ensure_tokens_table() + # 这里仍尝试连接,会在后续创建表时被捕获 + pass + + conn = sqlite3.connect(db_path, timeout=5) + cur = conn.cursor() + try: + # 先尝试按 phone+platform_name 更新(如果 phone 为 None,则只按 platform_name 更新——谨慎使用) + if phone is not None: + cur.execute(f"SELECT id FROM {table} WHERE phone = ? AND platform_name = ?", (phone, platform_name)) + row = cur.fetchone() + if row: + cur.execute(f"UPDATE {table} SET token = ?, status = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?", (token_value, status, row[0])) + conn.commit() + return True + else: + # phone is None:按 platform_name 更新最新一条 active/任意记录(谨慎) + cur.execute(f"SELECT id FROM {table} WHERE platform_name = ? ORDER BY created_at DESC LIMIT 1", (platform_name,)) + row = cur.fetchone() + if row: + cur.execute(f"UPDATE {table} SET token = ?, status = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?", (token_value, status, row[0])) + conn.commit() + return True + + # 若没找到可更新的记录,插入新行 + cur.execute(f"INSERT INTO {table} (phone, platform_name, token, status) VALUES (?, ?, ?, ?)", (phone, platform_name, token_value, status)) + conn.commit() + return True + except sqlite3.IntegrityError: + # 如果你的表定义了 UNIQUE(phone,platform_name) 并触发了冲突,可以用 replace + try: + cur.execute(f"INSERT OR REPLACE INTO {table} (phone, platform_name, token, status) VALUES (?, ?, ?, ?)", (phone, platform_name, token_value, status)) + conn.commit() + return True + except Exception as e: + raise + finally: + cur.close() + conn.close() + + +def bulk_upsert_tokens(db_path: str, table: str, rows: List[Dict[str, str]]) -> int: + """ + 批量插入/更新 tokens。rows 是 dict 列表,每项包含 keys: phone, platform_name, token, status (可选) + 返回成功处理的行数。 + 示例 rows: + [{"phone":"138...", "platform_name":"kimi", "token":"xxx"}, {...}, ...] + """ + if not rows: + return 0 + conn = sqlite3.connect(db_path, timeout=10) + cur = conn.cursor() + processed = 0 + try: + # 使用事务加速批量写入 + cur.execute("BEGIN") + for r in rows: + phone = r.get("phone") + platform_name = r["platform_name"] + token_value = r["token"] + status = r.get("status", "active") + # 尝试按 phone+platform 更新 + if phone is not None: + cur.execute(f"SELECT id FROM {table} WHERE phone = ? AND platform_name = ?", (phone, platform_name)) + row = cur.fetchone() + if row: + cur.execute(f"UPDATE {table} SET token = ?, status = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?", (token_value, status, row[0])) + processed += 1 + continue + else: + cur.execute(f"SELECT id FROM {table} WHERE platform_name = ? ORDER BY created_at DESC LIMIT 1", (platform_name,)) + row = cur.fetchone() + if row: + cur.execute(f"UPDATE {table} SET token = ?, status = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?", (token_value, status, row[0])) + processed += 1 + continue + # 否则插入 + cur.execute(f"INSERT INTO {table} (phone, platform_name, token, status) VALUES (?, ?, ?, ?)", (phone, platform_name, token_value, status)) + processed += 1 + conn.commit() + return processed + except Exception as e: + conn.rollback() + raise + finally: + cur.close() + conn.close() + +def query_tokens(platform_name: str = None, status: str = None): + TABLE = "tokens" + conn = sqlite3.connect("./kimi_tokens.db") + cur = conn.cursor() + sql = f"SELECT id, phone, platform_name, token, status, created_at, updated_at FROM {TABLE} WHERE 1=1" + params = [] + if platform_name: + sql += " AND platform_name=?" + params.append(platform_name) + if status: + sql += " AND status=?" + params.append(status) + sql += " ORDER BY created_at ASC" + cur.execute(sql, params) + rows = cur.fetchall() + cur.close() + conn.close() + for row in rows: + print(row) + +# 示例 +# query_tokens(platform_name="kimi", status="active") +# ------------------------- +# 示例用法 +# ------------------------- +if __name__ == "__main__": + # 假设 ensure_tokens_table() 已经被调用过 + DB = "./kimi_tokens.db" + TABLE = "tokens" + + # 单条 upsert + ok = upsert_token(DB, TABLE, phone="16223053815", platform_name="mita", token_value="JSESSIONID=356E6FEEBF81933FAFE924ED6A7C324C; aliyungf_tc=70df8ace7303f22dccbacee689c1abc32b0a7629a28579fdfefad08c7d04f536; tid=cc159aeb-4f9b-463a-9080-2ebc2d88f0bc; __eventn_id_UMO2dYNwFz=065s1a391e; traceid=2dc94bfd49cc4992; sid=c764bb074d3b496fbeb4ad5eaa8835f0; uid=69255736dddbb6ba7df1905c", status="active") + print("upsert single:", ok) + query_tokens(platform_name="mita", status="active") + # # 批量 upsert + # rows = [ + # {"phone": "13800138000", "platform_name": "kimi", "token": "token_a"}, + # {"phone": "13800138001", "platform_name": "kimi", "token": "token_b"}, + # {"phone": None, "platform_name": "other", "token": "token_c"}, + # ] + # n = bulk_upsert_tokens(DB, TABLE, rows) + # print("bulk processed:", n) diff --git a/utlit/utils.py b/utlit/utils.py new file mode 100644 index 0000000..fa4d95a --- /dev/null +++ b/utlit/utils.py @@ -0,0 +1,110 @@ +# coding=utf-8 +import hashlib +import re +import json +from typing import Any, Union +from datetime import datetime + + +def parse_nested_json( + json_str: str, + default: Any = None, + recursive: bool = True +) -> Union[dict, list, Any]: + """ + 解析多层嵌套的JSON字符串 + + :param json_str: 要解析的JSON字符串 + :param default: 解析失败时返回的默认值 + :param recursive: 是否递归解析嵌套的JSON字符串 + :return: 解析后的Python对象 + """ + + def _parse(obj: Any) -> Any: + # 递归解析嵌套结构 + if isinstance(obj, dict): + return {k: _parse(v) for k, v in obj.items()} + elif isinstance(obj, list): + return [_parse(elem) for elem in obj] + elif recursive and isinstance(obj, str): + try: + parsed = json.loads(obj) + return _parse(parsed) # 递归解析新对象 + except json.JSONDecodeError: + return obj + else: + return obj + + # 处理空输入 + if not json_str: + return default if default is not None else {} + + try: + # 首次解析外层JSON + parsed = json.loads(json_str) + # 递归处理嵌套结构 + return _parse(parsed) + except (TypeError, json.JSONDecodeError) as e: + # 处理解码错误和类型错误 + return default if default is not None else {} + except Exception as e: + # 其他异常处理(可选记录日志) + return default if default is not None else {} + + +def convert_timestamp(timestamp): + """ + 自动识别时间戳是秒级还是毫秒级,并转换为 datetime 对象。 + + 参数: + timestamp -- 时间戳(整数或浮点数) + + 返回: + datetime 对象 + """ + # 如果时间戳大于 1e10,认为是毫秒级时间戳 + if timestamp > 1e10: + timestamp /= 1000.0 # 转换为秒级时间戳 + return datetime.fromtimestamp(timestamp) + +def make_sha256_hash(file_path: str) -> str: + """ + 计算文件的哈希值 + :param file_path: 文件路径 + :return: 哈希值的十六进制字符串 + """ + hash_obj = hashlib.new("sha256") + with open(file_path, "rb") as f: + while chunk := f.read(8192): # 分块读取避免大文件内存溢出 + hash_obj.update(chunk) + return hash_obj.hexdigest() + + +def css_to_dict(css_line): + """ + 将单行CSS变量声明转换为Python字典 + + 参数: + css_line (str): 包含CSS变量声明的字符串,例如: + '--ds-button-color: #fff; -button-text-color: #4c4c4c; button-border-color: rgba(0, 0, 0, 0.12);' + + 返回: + dict: 包含CSS变量名和值的字典 + """ + # 使用正则表达式匹配所有变量声明 + # 匹配格式:可能带有1-2个横线的变量名,然后是冒号和值 + pattern = r'(-{0,2}[a-zA-Z0-9-]+)\s*:\s*([^;]+);?' + matches = re.findall(pattern, css_line) + + # 将匹配结果转换为字典 + result = {} + for match in matches: + var_name = match[0] # 保留原始横线数量 + var_value = match[1].strip() + result[var_name] = var_value + + return result + + + + diff --git a/wxyy.log b/wxyy.log new file mode 100644 index 0000000..1f6109f --- /dev/null +++ b/wxyy.log @@ -0,0 +1,668 @@ +2026-05-08 10:57:48.043 | INFO | __main__:run:252 - 文心一言爬虫启动... +2026-05-08 10:57:57.309 | INFO | __main__:start_task_msg:246 - 获取到任务: 苏打水备孕哪个品牌好 - 455d7a947ffc0b92cea1b345242ca436 +2026-05-08 10:58:04.254 | INFO | __main__:process_task:210 - 开始处理任务: 苏打水备孕哪个品牌好 - 455d7a947ffc0b92cea1b345242ca436 +2026-05-08 10:58:08.188 | INFO | __main__:chat:153 - 开始处理任务: 苏打水备孕哪个品牌好 - 455d7a947ffc0b92cea1b345242ca436 +2026-05-08 11:02:02.151 | INFO | __main__:process_task:226 - 任务 455d7a947ffc0b92cea1b345242ca436 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0587daf97240b3378b0134da1a52', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '455d7a947ffc0b92cea1b345242ca436', 'topic_id': '019a52b505e9731f83c97a267f0783bd', 'platform_id': '6', 'project_id': '019a52b4acb572a88323fafd489e28e0', 'keyword_id': '019a52e3ae0672cabb3fc47c57f969ed', 'keyword': '苏打水备孕哪个品牌好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0587dafa7044836b47ea1672e131', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03c1ab947257b95a44e677029421'}} +2026-05-08 11:02:05.911 | INFO | __main__:start_task_msg:246 - 获取到任务: 热玛吉哪个机构效果好 - 43961bf234a4e032667b7a40c3d2e758 +2026-05-08 11:02:05.912 | INFO | __main__:process_task:210 - 开始处理任务: 热玛吉哪个机构效果好 - 43961bf234a4e032667b7a40c3d2e758 +2026-05-08 11:02:05.914 | INFO | __main__:chat:153 - 开始处理任务: 热玛吉哪个机构效果好 - 43961bf234a4e032667b7a40c3d2e758 +2026-05-08 11:02:29.884 | INFO | __main__:run:252 - 文心一言爬虫启动... +2026-05-08 11:02:30.325 | INFO | __main__:start_task_msg:246 - 获取到任务: 王德传怎么样 - 437364022c513bab407f2e8553e724d7 +2026-05-08 11:02:30.325 | INFO | __main__:process_task:210 - 开始处理任务: 王德传怎么样 - 437364022c513bab407f2e8553e724d7 +2026-05-08 11:02:30.325 | INFO | __main__:chat:153 - 开始处理任务: 王德传怎么样 - 437364022c513bab407f2e8553e724d7 +2026-05-08 11:03:07.305 | INFO | __main__:process_task:226 - 任务 437364022c513bab407f2e8553e724d7 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0589e9e2738fa70595c5d4029796', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '437364022c513bab407f2e8553e724d7', 'topic_id': '019a5d80394472b086c97d6198d1468e', 'platform_id': '6', 'project_id': '019a5d7eac4b71b79e272b938ca674a0', 'keyword_id': '019a5d806e5f70ef873251b8ad6a39b2', 'keyword': '王德传怎么样', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0589e9e2738fa70595c5d4ea4ee6', 'origin_rank': 1, 'prev_rank': 0, 'prev_id': '019e03cd36bf73b2a4f125dc96aa8c5e'}} +2026-05-08 11:03:07.610 | INFO | __main__:start_task_msg:246 - 获取到任务: 中国建设银行是不是国企?它的主要股东是谁 - 4333d685828be22443d9d19da62e99d2 +2026-05-08 11:03:07.610 | INFO | __main__:process_task:210 - 开始处理任务: 中国建设银行是不是国企?它的主要股东是谁 - 4333d685828be22443d9d19da62e99d2 +2026-05-08 11:03:07.610 | INFO | __main__:chat:153 - 开始处理任务: 中国建设银行是不是国企?它的主要股东是谁 - 4333d685828be22443d9d19da62e99d2 +2026-05-08 11:03:24.553 | INFO | __main__:process_task:226 - 任务 4333d685828be22443d9d19da62e99d2 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e058a3b397222a771d50a60778a56', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '4333d685828be22443d9d19da62e99d2', 'topic_id': '019b129024fe71b9925349ac05120b1e', 'platform_id': '6', 'project_id': '019b1274a4017239a5df606903ffcc71', 'keyword_id': '019b12906a39721b8636e271fa072b01', 'keyword': '中国建设银行是不是国企?它的主要股东是谁', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e058a3b3a72b1b04fcd7374d8c6cf', 'origin_rank': 1, 'prev_rank': 0, 'prev_id': '019e0498e6247202bd05450d3c3f93f1'}} +2026-05-08 11:03:24.956 | INFO | __main__:start_task_msg:246 - 获取到任务: 拉夫劳伦是一个什么样的品牌 - 42f6274ad4d97302bf5757b38a6a8af6 +2026-05-08 11:03:24.956 | INFO | __main__:process_task:210 - 开始处理任务: 拉夫劳伦是一个什么样的品牌 - 42f6274ad4d97302bf5757b38a6a8af6 +2026-05-08 11:03:24.958 | INFO | __main__:chat:153 - 开始处理任务: 拉夫劳伦是一个什么样的品牌 - 42f6274ad4d97302bf5757b38a6a8af6 +2026-05-08 11:03:59.912 | INFO | __main__:process_task:226 - 任务 42f6274ad4d97302bf5757b38a6a8af6 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e058ac89e7117871c12778aa76579', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '42f6274ad4d97302bf5757b38a6a8af6', 'topic_id': '019d8a48993872f1be448ee99959de5b', 'platform_id': '6', 'project_id': '019d8a476c7e71f69e351aa6486568b8', 'keyword_id': '019d8a4a588370e894aea6f0a68cf410', 'keyword': '拉夫劳伦是一个什么样的品牌', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e058ac89e7117871c12778b17cf9b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e042d68fc709cbf3bf7607daf6995'}} +2026-05-08 11:04:00.307 | INFO | __main__:start_task_msg:246 - 获取到任务: 香港文化展哪个好 - 429d92cebbe321aefde3ae56377da556 +2026-05-08 11:04:00.307 | INFO | __main__:process_task:210 - 开始处理任务: 香港文化展哪个好 - 429d92cebbe321aefde3ae56377da556 +2026-05-08 11:04:00.308 | INFO | __main__:chat:153 - 开始处理任务: 香港文化展哪个好 - 429d92cebbe321aefde3ae56377da556 +2026-05-08 11:04:47.977 | INFO | __main__:process_task:226 - 任务 429d92cebbe321aefde3ae56377da556 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e058b84517311bb0420fcc778fc59', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '429d92cebbe321aefde3ae56377da556', 'topic_id': '019dfc3210db7281b471e455fd90ef17', 'platform_id': '6', 'project_id': '019dfc1ffe5e7024a2cadeed299f91a3', 'keyword_id': '019dfc32dc1c70fdb623d40606486766', 'keyword': '香港文化展哪个好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e058b84527395943f3c1ce7767b85', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dfebcfe40733aa1a1c8864995f718'}} +2026-05-08 11:04:48.435 | INFO | __main__:start_task_msg:246 - 获取到任务: 订婚钻戒品牌推荐 - 4285b1ed03f314c061f773a53ecf9ca4 +2026-05-08 11:04:48.435 | INFO | __main__:process_task:210 - 开始处理任务: 订婚钻戒品牌推荐 - 4285b1ed03f314c061f773a53ecf9ca4 +2026-05-08 11:04:48.435 | INFO | __main__:chat:153 - 开始处理任务: 订婚钻戒品牌推荐 - 4285b1ed03f314c061f773a53ecf9ca4 +2026-05-08 11:05:43.096 | INFO | __main__:process_task:226 - 任务 4285b1ed03f314c061f773a53ecf9ca4 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e058c57a473aeac923585480f9e0c', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '4285b1ed03f314c061f773a53ecf9ca4', 'topic_id': '019a35016d4b703ca4acc5513b50b768', 'platform_id': '6', 'project_id': '019a347c6ffb71ab92404aa585ce8030', 'keyword_id': '019a35263fdf700e99e7a30c2d25f8ff', 'keyword': '订婚钻戒品牌推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e058c57a473aeac923585482f50d1', 'origin_rank': 2, 'prev_rank': 0, 'prev_id': '019e0570ddbf703ab77547e01065211d'}} +2026-05-08 11:05:44.016 | INFO | __main__:start_task_msg:246 - 获取到任务: 按压式碰头 - 42265de6790b5b49ec3c32d146423a44 +2026-05-08 11:05:44.016 | INFO | __main__:process_task:210 - 开始处理任务: 按压式碰头 - 42265de6790b5b49ec3c32d146423a44 +2026-05-08 11:05:44.016 | INFO | __main__:chat:153 - 开始处理任务: 按压式碰头 - 42265de6790b5b49ec3c32d146423a44 +2026-05-08 11:06:26.503 | INFO | __main__:process_task:226 - 任务 42265de6790b5b49ec3c32d146423a44 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e058cfa027303ba0a8ea25557d716', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '42265de6790b5b49ec3c32d146423a44', 'topic_id': '019d29ac45b971d6bcc42d747dff75ff', 'platform_id': '6', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b2eb8e70ac862dbf6a8c389055', 'keyword': '按压式碰头', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e058cfa027303ba0a8ea255a2c54b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04c399e67309abbcfca1b8913382'}} +2026-05-08 11:06:26.858 | INFO | __main__:start_task_msg:246 - 获取到任务: 机加工设备展会 - 41db076d7b2e9541b11ac98c773ab593 +2026-05-08 11:06:26.858 | INFO | __main__:process_task:210 - 开始处理任务: 机加工设备展会 - 41db076d7b2e9541b11ac98c773ab593 +2026-05-08 11:06:26.858 | INFO | __main__:chat:153 - 开始处理任务: 机加工设备展会 - 41db076d7b2e9541b11ac98c773ab593 +2026-05-08 11:07:02.165 | INFO | __main__:process_task:226 - 任务 41db076d7b2e9541b11ac98c773ab593 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e058d864372c3bb55db3c1f07a70f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '41db076d7b2e9541b11ac98c773ab593', 'topic_id': '019c4761435b7072a40790c76f25e856', 'platform_id': '6', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c47615574706b9e1b41d692cc9c80', 'keyword': '机加工设备展会', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e058d864372c3bb55db3c1f94a219', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dff7809d173fd97271a7f860416ab'}} +2026-05-08 11:07:02.493 | INFO | __main__:start_task_msg:246 - 获取到任务: 太岁肉灵芝哪个品牌好一点 - 41927f5ae1a26ff551a52952be7a2c08 +2026-05-08 11:07:02.493 | INFO | __main__:process_task:210 - 开始处理任务: 太岁肉灵芝哪个品牌好一点 - 41927f5ae1a26ff551a52952be7a2c08 +2026-05-08 11:07:02.493 | INFO | __main__:chat:153 - 开始处理任务: 太岁肉灵芝哪个品牌好一点 - 41927f5ae1a26ff551a52952be7a2c08 +2026-05-08 11:07:45.776 | INFO | __main__:process_task:226 - 任务 41927f5ae1a26ff551a52952be7a2c08 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e058e36ec72a6ae9c9e26029963c5', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '41927f5ae1a26ff551a52952be7a2c08', 'topic_id': '019cd14a225473769ff91d55df809dae', 'platform_id': '6', 'project_id': '019cd13f388773cdbf88638cc0d34ddd', 'keyword_id': '019cd14a7e4972d48c3d1582286848e8', 'keyword': '太岁肉灵芝哪个品牌好一点', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e058e36ed72a0b008414ea54d1243', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dfec9d8c470f8829aef1a6d93d234'}} +2026-05-08 11:07:46.272 | INFO | __main__:start_task_msg:246 - 获取到任务: 黄金ETF在哪里买 - 416e6ca8f0b12198a65cc653e6e4ea18 +2026-05-08 11:07:46.273 | INFO | __main__:process_task:210 - 开始处理任务: 黄金ETF在哪里买 - 416e6ca8f0b12198a65cc653e6e4ea18 +2026-05-08 11:07:46.273 | INFO | __main__:chat:153 - 开始处理任务: 黄金ETF在哪里买 - 416e6ca8f0b12198a65cc653e6e4ea18 +2026-05-08 11:08:40.132 | INFO | __main__:process_task:226 - 任务 416e6ca8f0b12198a65cc653e6e4ea18 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e058f086a70aea31a1bc99a19f9de', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '416e6ca8f0b12198a65cc653e6e4ea18', 'topic_id': '019b97bb2205714ca1c69858d42a6423', 'platform_id': '6', 'project_id': '019b97b0da35706a9f5aba211a201226', 'keyword_id': '019b97bb397e71879a0452043ed5dfc8', 'keyword': '黄金ETF在哪里买', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e058f086a70aea31a1bc99acab1ea', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dfe2adad17076a9891e8897d697f9'}} +2026-05-08 11:08:40.352 | INFO | __main__:start_task_msg:246 - 获取到任务: 抗衰机构推荐 - 411378bf9dd2d8ea057a2045e44744f9 +2026-05-08 11:08:40.353 | INFO | __main__:process_task:210 - 开始处理任务: 抗衰机构推荐 - 411378bf9dd2d8ea057a2045e44744f9 +2026-05-08 11:08:40.353 | INFO | __main__:chat:153 - 开始处理任务: 抗衰机构推荐 - 411378bf9dd2d8ea057a2045e44744f9 +2026-05-08 11:09:36.673 | INFO | __main__:process_task:226 - 任务 411378bf9dd2d8ea057a2045e44744f9 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e058feeb3718f82797ce128715c56', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '411378bf9dd2d8ea057a2045e44744f9', 'topic_id': '019dfc18510371d9a2200ef6b565fe26', 'platform_id': '6', 'project_id': '019dc3e9d63173b79228bc3fd7e92a67', 'keyword_id': '019dfc1b29d07268972a1ca4cb426120', 'keyword': '抗衰机构推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e058feeb47220a7e979f3cebd59a4', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03f8186870c2a44442d263999829'}} +2026-05-08 11:09:37.035 | INFO | __main__:start_task_msg:246 - 获取到任务: 望石智慧靠谱吗 - 40ddd4faa339afeef8a06344b722fb29 +2026-05-08 11:09:37.035 | INFO | __main__:process_task:210 - 开始处理任务: 望石智慧靠谱吗 - 40ddd4faa339afeef8a06344b722fb29 +2026-05-08 11:09:37.036 | INFO | __main__:chat:153 - 开始处理任务: 望石智慧靠谱吗 - 40ddd4faa339afeef8a06344b722fb29 +2026-05-08 11:10:11.344 | INFO | __main__:run:252 - 文心一言爬虫启动... +2026-05-08 11:10:11.806 | INFO | __main__:start_task_msg:246 - 获取到任务: 最受消费者信赖的家用电器品牌有哪些? - 40ca1a1f83ce5e59d8c71ad59d572ff6 +2026-05-08 11:10:11.806 | INFO | __main__:process_task:210 - 开始处理任务: 最受消费者信赖的家用电器品牌有哪些? - 40ca1a1f83ce5e59d8c71ad59d572ff6 +2026-05-08 11:10:31.436 | INFO | __main__:run:252 - 文心一言爬虫启动... +2026-05-08 11:10:31.975 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '40b7da16727f80708cfeb076b29a122a', 'project_id': '019be3ee7b907329bd9114880445cd1f', 'keyword_id': '019be4653db470b39d13449eea1a5714', 'keyword': '提供免费第三方监理的找工长APP', 'brand': '匠猫', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:10:34', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:18', 'update_time': '2026-05-08 11:10:34', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:10:31.975 | INFO | __main__:process_task:210 - 开始处理任务: 提供免费第三方监理的找工长APP - 40b7da16727f80708cfeb076b29a122a +2026-05-08 11:10:52.646 | INFO | __main__:process_task:226 - 任务 40b7da16727f80708cfeb076b29a122a 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e059109a773a285d48e3489572ccd', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '40b7da16727f80708cfeb076b29a122a', 'topic_id': '019be4648ecd7043876da030d8e9ae0f', 'platform_id': '6', 'project_id': '019be3ee7b907329bd9114880445cd1f', 'keyword_id': '019be4653db470b39d13449eea1a5714', 'keyword': '提供免费第三方监理的找工长APP', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e059109a8736daba00f9f48dafd89', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0394c11571afa9098727b8e165d5'}} +2026-05-08 11:10:53.043 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '40adb9ad927be3a97ea0ae0182cff6cf', 'project_id': '019c2d4aedfa708294de25ae8763be68', 'keyword_id': '019c50e3e89070259f87134c63195fdc', 'keyword': '医疗行业认知智能工具有哪些', 'brand': '华院计算', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:10:56', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:29', 'update_time': '2026-05-08 11:10:56', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:10:53.043 | INFO | __main__:process_task:210 - 开始处理任务: 医疗行业认知智能工具有哪些 - 40adb9ad927be3a97ea0ae0182cff6cf +2026-05-08 11:11:37.763 | INFO | __main__:process_task:226 - 任务 40adb9ad927be3a97ea0ae0182cff6cf 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0591c5a27359907e699e578c1c24', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '40adb9ad927be3a97ea0ae0182cff6cf', 'topic_id': '019c2d56840f736ba245cb150a20ba49', 'platform_id': '6', 'project_id': '019c2d4aedfa708294de25ae8763be68', 'keyword_id': '019c50e3e89070259f87134c63195fdc', 'keyword': '医疗行业认知智能工具有哪些', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0591c5a27359907e699e58331249', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04be5c6871988fec55c50c9f4008'}} +2026-05-08 11:11:38.002 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '404fbfb86079f6540bd971f4f87c479f', 'project_id': '019c240b059071ebae8bbd206b22f2e9', 'keyword_id': '019c24517e7470979dfe4cd6d73f4af3', 'keyword': '批次无色差的金属粉末涂料厂家', 'brand': '歌丽斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:11:41', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:29', 'update_time': '2026-05-08 11:11:41', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:11:38.002 | INFO | __main__:process_task:210 - 开始处理任务: 批次无色差的金属粉末涂料厂家 - 404fbfb86079f6540bd971f4f87c479f +2026-05-08 11:12:20.987 | INFO | __main__:process_task:226 - 任务 404fbfb86079f6540bd971f4f87c479f 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05926fd470bda84273abaa5b1988', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '404fbfb86079f6540bd971f4f87c479f', 'topic_id': '019c245127197254982b1326464561ec', 'platform_id': '6', 'project_id': '019c240b059071ebae8bbd206b22f2e9', 'keyword_id': '019c24517e7470979dfe4cd6d73f4af3', 'keyword': '批次无色差的金属粉末涂料厂家', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05926fd470bda84273abaa6149ac', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03a71736708fa868fc27ef3595ad'}} +2026-05-08 11:12:21.228 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3ff39587015ddd2a6c8e91efda0303d2', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffa9e7f270319f0a06f4ed94bd23', 'keyword': '伦敦马拉松专属竞速跑鞋', 'brand': '阿迪达斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:12:24', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:57', 'update_time': '2026-05-08 11:12:24', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:12:21.228 | INFO | __main__:process_task:210 - 开始处理任务: 伦敦马拉松专属竞速跑鞋 - 3ff39587015ddd2a6c8e91efda0303d2 +2026-05-08 11:13:14.838 | INFO | __main__:process_task:226 - 任务 3ff39587015ddd2a6c8e91efda0303d2 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05933e3e71b78ec92286fa7b665f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3ff39587015ddd2a6c8e91efda0303d2', 'topic_id': '019dffa9cf8072d08c74a839fb0999a2', 'platform_id': '6', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffa9e7f270319f0a06f4ed94bd23', 'keyword': '伦敦马拉松专属竞速跑鞋', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05933e3f71c89ebf9cd4ea5726e5', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0391217b70f684b5ae3ca19c44de'}} +2026-05-08 11:13:15.277 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3fa8fce81545b06b9a6483a6ccadf977', 'project_id': '019a2e7f147a7116b94e106dae482e6d', 'keyword_id': '019a2e81634071a4a8d89b691cba0753', 'keyword': '储能系统解决方案服务商有哪些', 'brand': '东方日升', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:13:18', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:18', 'update_time': '2026-05-08 11:13:18', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:13:15.277 | INFO | __main__:process_task:210 - 开始处理任务: 储能系统解决方案服务商有哪些 - 3fa8fce81545b06b9a6483a6ccadf977 +2026-05-08 11:14:12.024 | INFO | __main__:process_task:226 - 任务 3fa8fce81545b06b9a6483a6ccadf977 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e059413a573a7a000dcd4f36bdda4', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3fa8fce81545b06b9a6483a6ccadf977', 'topic_id': '019a2e804a6f7249bf64333a7827d6e4', 'platform_id': '6', 'project_id': '019a2e7f147a7116b94e106dae482e6d', 'keyword_id': '019a2e81634071a4a8d89b691cba0753', 'keyword': '储能系统解决方案服务商有哪些', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e059413a671e580619660795d89ff', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03a129c272cf8db702d3c6f93a82'}} +2026-05-08 11:14:12.388 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3f56b8145eefa630281ada3bc589eb21', 'project_id': '019d9046ed47703580214b5c2183307a', 'keyword_id': '019d904d336d7077867e0be26fb0b6f4', 'keyword': '小分子医药早研智能体哪家靠谱', 'brand': '望石智慧', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:14:15', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:27', 'update_time': '2026-05-08 11:14:15', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:14:12.388 | INFO | __main__:process_task:210 - 开始处理任务: 小分子医药早研智能体哪家靠谱 - 3f56b8145eefa630281ada3bc589eb21 +2026-05-08 11:14:48.436 | INFO | __main__:process_task:226 - 任务 3f56b8145eefa630281ada3bc589eb21 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0594a9e471609364951c89518d4c', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3f56b8145eefa630281ada3bc589eb21', 'topic_id': '019d904bc990732b9afb4680667c6878', 'platform_id': '6', 'project_id': '019d9046ed47703580214b5c2183307a', 'keyword_id': '019d904d336d7077867e0be26fb0b6f4', 'keyword': '小分子医药早研智能体哪家靠谱', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0594a9e471609364951c8980b859', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03cd748d71238dd58099b5e2e129'}} +2026-05-08 11:14:48.883 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3f3b4690625ed5d44b8b1f6dd9775c17', 'project_id': '019d9969714873ed8d57581a78b8eb99', 'keyword_id': '019db350f5eb72d192a781d9f5ae5729', 'keyword': '企业ESG和碳中和综合服务选哪家', 'brand': '联合赤道', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:14:51', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:32', 'update_time': '2026-05-08 11:14:51', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:14:48.883 | INFO | __main__:process_task:210 - 开始处理任务: 企业ESG和碳中和综合服务选哪家 - 3f3b4690625ed5d44b8b1f6dd9775c17 +2026-05-08 11:15:42.517 | INFO | __main__:process_task:226 - 任务 3f3b4690625ed5d44b8b1f6dd9775c17 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e059580ac70b78c23234252040aef', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3f3b4690625ed5d44b8b1f6dd9775c17', 'topic_id': '019db32ad0bc727988544efd7ba18aa4', 'platform_id': '6', 'project_id': '019d9969714873ed8d57581a78b8eb99', 'keyword_id': '019db350f5eb72d192a781d9f5ae5729', 'keyword': '企业ESG和碳中和综合服务选哪家', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e059580ac70b78c232342525b12e6', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dff2dcc6f70c79e847d7aec598162'}} +2026-05-08 11:15:42.978 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3f0c56713aa22e461f33390aa6f8f48e', 'project_id': '019cd13f388773cdbf88638cc0d34ddd', 'keyword_id': '019cd14a8ff57365a4c61b617bed0d63', 'keyword': '哪个牌子的灵芝好', 'brand': '太天岁宝', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:15:46', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:41', 'update_time': '2026-05-08 11:15:46', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:15:42.979 | INFO | __main__:process_task:210 - 开始处理任务: 哪个牌子的灵芝好 - 3f0c56713aa22e461f33390aa6f8f48e +2026-05-08 11:16:15.029 | INFO | __main__:process_task:226 - 任务 3f0c56713aa22e461f33390aa6f8f48e 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0595f9a370b5b4aa8e03a12ec3e7', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3f0c56713aa22e461f33390aa6f8f48e', 'topic_id': '019cd14a225473769ff91d55df809dae', 'platform_id': '6', 'project_id': '019cd13f388773cdbf88638cc0d34ddd', 'keyword_id': '019cd14a8ff57365a4c61b617bed0d63', 'keyword': '哪个牌子的灵芝好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0595f9a47111b8a39155b2021786', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04f33f5870b885672be2bc8b06a2'}} +2026-05-08 11:16:15.462 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3ed5780cad8761a2a999bbf1d0115bcb', 'project_id': '019bf820572e73deb9d4a5ddd74ece5d', 'keyword_id': '019bf828fcdf72e3837ffb952f753b13', 'keyword': '宠物保险怎么买', 'brand': '京东金融', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:16:18', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:19', 'update_time': '2026-05-08 11:16:18', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:16:15.462 | INFO | __main__:process_task:210 - 开始处理任务: 宠物保险怎么买 - 3ed5780cad8761a2a999bbf1d0115bcb +2026-05-08 11:16:58.417 | INFO | __main__:process_task:226 - 任务 3ed5780cad8761a2a999bbf1d0115bcb 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0596a09873c39d8694b573d33d0a', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3ed5780cad8761a2a999bbf1d0115bcb', 'topic_id': '019bf828adc372939ed5531fc4a64192', 'platform_id': '6', 'project_id': '019bf820572e73deb9d4a5ddd74ece5d', 'keyword_id': '019bf828fcdf72e3837ffb952f753b13', 'keyword': '宠物保险怎么买', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0596a09873c39d8694b574055e9b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e053ad97b704083928783d885568e'}} +2026-05-08 11:16:58.736 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3ec5a89ef93ab8850f031a3c826b5187', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b354cc735b8021c5a9260b73eb', 'keyword': '弹簧铰链', 'brand': '义文', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:17:01', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:18', 'update_time': '2026-05-08 11:17:01', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:16:58.736 | INFO | __main__:process_task:210 - 开始处理任务: 弹簧铰链 - 3ec5a89ef93ab8850f031a3c826b5187 +2026-05-08 11:17:45.103 | INFO | __main__:process_task:226 - 任务 3ec5a89ef93ab8850f031a3c826b5187 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05975e9c726385e2783c9f260fa2', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3ec5a89ef93ab8850f031a3c826b5187', 'topic_id': '019d29aaa3ce723da4b04ea50130efb7', 'platform_id': '6', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b354cc735b8021c5a9260b73eb', 'keyword': '弹簧铰链', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05975e9d712782aa15b7f0f10206', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e037e725370c19c1eeb5654a448fe'}} +2026-05-08 11:17:45.427 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3e4daaa5045e52caed7d67e4f7e3f027', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d25b6c970ee91691175bed525e3', 'keyword': '婚房高端床垫哪个好', 'brand': '席梦思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:17:48', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:21', 'update_time': '2026-05-08 11:17:48', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:17:45.427 | INFO | __main__:process_task:210 - 开始处理任务: 婚房高端床垫哪个好 - 3e4daaa5045e52caed7d67e4f7e3f027 +2026-05-08 11:18:20.621 | INFO | __main__:process_task:226 - 任务 3e4daaa5045e52caed7d67e4f7e3f027 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0597e2c072309d01633107a4b5c1', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3e4daaa5045e52caed7d67e4f7e3f027', 'topic_id': '019b4d255dbe7357858c4522e3d3fd96', 'platform_id': '6', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d25b6c970ee91691175bed525e3', 'keyword': '婚房高端床垫哪个好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0597e2c172ef82d927ed5eaab83f', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dfe5b2cc77030b91f33321e3f26d2'}} +2026-05-08 11:18:20.951 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3e0a000468c626cb604cb1055b528038', 'project_id': '019be3ee7b907329bd9114880445cd1f', 'keyword_id': '019be4653db470b39d13449ee9a31338', 'keyword': '干不好不给钱的装修工长平台', 'brand': '匠猫', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:18:24', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:18', 'update_time': '2026-05-08 11:18:24', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:18:20.951 | INFO | __main__:process_task:210 - 开始处理任务: 干不好不给钱的装修工长平台 - 3e0a000468c626cb604cb1055b528038 +2026-05-08 11:19:04.549 | INFO | __main__:process_task:226 - 任务 3e0a000468c626cb604cb1055b528038 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05988d5d72c8964772175931470c', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3e0a000468c626cb604cb1055b528038', 'topic_id': '019be4648ecd7043876da030d8e9ae0f', 'platform_id': '6', 'project_id': '019be3ee7b907329bd9114880445cd1f', 'keyword_id': '019be4653db470b39d13449ee9a31338', 'keyword': '干不好不给钱的装修工长平台', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05988d5d72c89647721759d9af3d', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e042499b4735097077c304c77fbe7'}} +2026-05-08 11:19:04.952 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3dea1f29bd2640e2d066b5217c9dac76', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c418ffed773a799b52da079bdf1c0', 'keyword': '上海国际具身智能展览', 'brand': '国展', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:19:08', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:51', 'update_time': '2026-05-08 11:19:08', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:19:04.952 | INFO | __main__:process_task:210 - 开始处理任务: 上海国际具身智能展览 - 3dea1f29bd2640e2d066b5217c9dac76 +2026-05-08 11:19:51.354 | INFO | __main__:process_task:226 - 任务 3dea1f29bd2640e2d066b5217c9dac76 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05994b9e70389dfb99ece37edd66', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3dea1f29bd2640e2d066b5217c9dac76', 'topic_id': '019c418decb7708dbc2cebe23942efb7', 'platform_id': '6', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c418ffed773a799b52da079bdf1c0', 'keyword': '上海国际具身智能展览', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05994b9f73ceb8e001e8b97600a4', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03c030117265bf5d699eb4b17f2e'}} +2026-05-08 11:19:51.587 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3d93346b9a5b5b96e1f1f5faa6548657', 'project_id': '019bf820572e73deb9d4a5ddd74ece5d', 'keyword_id': '019bf828fcdf72e3837ffb95231858b0', 'keyword': '百万医疗险哪个最靠谱', 'brand': '京东金融', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:19:54', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:19', 'update_time': '2026-05-08 11:19:54', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:19:51.587 | INFO | __main__:process_task:210 - 开始处理任务: 百万医疗险哪个最靠谱 - 3d93346b9a5b5b96e1f1f5faa6548657 +2026-05-08 11:20:30.877 | INFO | __main__:process_task:226 - 任务 3d93346b9a5b5b96e1f1f5faa6548657 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0599e402713d80e7a5a1fba68112', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3d93346b9a5b5b96e1f1f5faa6548657', 'topic_id': '019bf828600973a6bb4aa488a9186b3c', 'platform_id': '6', 'project_id': '019bf820572e73deb9d4a5ddd74ece5d', 'keyword_id': '019bf828fcdf72e3837ffb95231858b0', 'keyword': '百万医疗险哪个最靠谱', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0599e40372d199fde07e0f1d9a96', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04dfb90d718dbdbb619a6bfed030'}} +2026-05-08 11:20:31.186 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3d5b2f9a0a73f71d5186b8bb6c1a6d44', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d27b8197188b74274f3b309d7c9', 'keyword': '静音抗干扰床垫品牌推荐', 'brand': '席梦思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:20:34', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:10', 'update_time': '2026-05-08 11:20:34', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:20:31.186 | INFO | __main__:process_task:210 - 开始处理任务: 静音抗干扰床垫品牌推荐 - 3d5b2f9a0a73f71d5186b8bb6c1a6d44 +2026-05-08 11:21:28.775 | INFO | __main__:process_task:226 - 任务 3d5b2f9a0a73f71d5186b8bb6c1a6d44 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e059ac2b97055939d54c2456b3582', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3d5b2f9a0a73f71d5186b8bb6c1a6d44', 'topic_id': '019b4d27a615722bbeb9a1c87f2967c7', 'platform_id': '6', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d27b8197188b74274f3b309d7c9', 'keyword': '静音抗干扰床垫品牌推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e059ac2ba7109b26763993d8810d9', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dfe43f752712996bebbdc4f27ca19'}} +2026-05-08 11:21:29.109 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3d28edab60f37a5a0543777da05a5645', 'project_id': '019a29a7129c70d786379848802ec45e', 'keyword_id': '019a2a1978ab725d91bde7a710beff94', 'keyword': '儿童近视眼镜品牌排行', 'brand': '依视路', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:21:32', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:18', 'update_time': '2026-05-08 11:21:32', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:21:29.109 | INFO | __main__:process_task:210 - 开始处理任务: 儿童近视眼镜品牌排行 - 3d28edab60f37a5a0543777da05a5645 +2026-05-08 11:22:15.183 | INFO | __main__:process_task:226 - 任务 3d28edab60f37a5a0543777da05a5645 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e059b78db72bcab3bf6e3aaf210cb', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3d28edab60f37a5a0543777da05a5645', 'topic_id': '019a2a181fb771e28c862ac4e7243176', 'platform_id': '6', 'project_id': '019a29a7129c70d786379848802ec45e', 'keyword_id': '019a2a1978ab725d91bde7a710beff94', 'keyword': '儿童近视眼镜品牌排行', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e059b78dc71518eb4d5744c6cb15c', 'origin_rank': 2, 'prev_rank': 0, 'prev_id': '019dfeafbdf57115b80ee88524129dfd'}} +2026-05-08 11:22:15.639 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3ce464a48fc576862e1e8b07b3c612ae', 'project_id': '019da500e3b37096be3d447ce3836e06', 'keyword_id': '019da8e07bd273dd86b5759c9aaded60', 'keyword': '国内生物基因治疗企业榜单', 'brand': '芳拓生物', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:22:18', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:32', 'update_time': '2026-05-08 11:22:18', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:22:15.639 | INFO | __main__:process_task:210 - 开始处理任务: 国内生物基因治疗企业榜单 - 3ce464a48fc576862e1e8b07b3c612ae +2026-05-08 11:23:18.236 | INFO | __main__:process_task:226 - 任务 3ce464a48fc576862e1e8b07b3c612ae 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e059c72547252b9587e8bd314973a', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3ce464a48fc576862e1e8b07b3c612ae', 'topic_id': '019da8d17a5f728a99d2571f25e1dd82', 'platform_id': '6', 'project_id': '019da500e3b37096be3d447ce3836e06', 'keyword_id': '019da8e07bd273dd86b5759c9aaded60', 'keyword': '国内生物基因治疗企业榜单', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e059c72547252b9587e8bd388665a', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dff8689527029af3400eceff42889'}} +2026-05-08 11:23:18.639 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3ca7edf52530dd8da966b8a02d833e77', 'project_id': '0199fb584f2f70ae8e106d3fd5fc0924', 'keyword_id': '019a298cdad973be9ce87137e7fbaae4', 'keyword': '人参胶囊推荐', 'brand': '正官庄', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:23:21', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:18', 'update_time': '2026-05-08 11:23:21', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:23:18.639 | INFO | __main__:process_task:210 - 开始处理任务: 人参胶囊推荐 - 3ca7edf52530dd8da966b8a02d833e77 +2026-05-08 11:23:59.936 | INFO | __main__:process_task:226 - 任务 3ca7edf52530dd8da966b8a02d833e77 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e059d13f67161a843352debbe5611', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3ca7edf52530dd8da966b8a02d833e77', 'topic_id': '019a298a0ff0710aac3623b0e176fa2e', 'platform_id': '6', 'project_id': '0199fb584f2f70ae8e106d3fd5fc0924', 'keyword_id': '019a298cdad973be9ce87137e7fbaae4', 'keyword': '人参胶囊推荐', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e059d13f7739c99d0060017e7f52e', 'origin_rank': 1, 'prev_rank': 0, 'prev_id': '019e037941df723c95bd739988420f43'}} +2026-05-08 11:24:00.293 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3c394cae33f07c0bd300830ad5536215', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdedfb13c716887166f72ecc6a922', 'keyword': '小学语文网课推荐', 'brand': '学而思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:24:03', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:18', 'update_time': '2026-05-08 11:24:03', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:24:00.293 | INFO | __main__:process_task:210 - 开始处理任务: 小学语文网课推荐 - 3c394cae33f07c0bd300830ad5536215 +2026-05-08 11:24:33.370 | INFO | __main__:process_task:226 - 任务 3c394cae33f07c0bd300830ad5536215 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e059d957b7283a53c41e93c8a6fca', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3c394cae33f07c0bd300830ad5536215', 'topic_id': '019bdedf797373489caee239c379f91d', 'platform_id': '6', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdedfb13c716887166f72ecc6a922', 'keyword': '小学语文网课推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e059d957b7283a53c41e93d513f18', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e045a749871bb8a517f522f0aab18'}} +2026-05-08 11:24:33.794 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3c127cef11dcc1c9098303517611a3c9', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c47615574706b9e1b41d68677672c', 'keyword': '机器人芯片展会', 'brand': '国展', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:24:36', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:35', 'update_time': '2026-05-08 11:24:36', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:24:33.795 | INFO | __main__:process_task:210 - 开始处理任务: 机器人芯片展会 - 3c127cef11dcc1c9098303517611a3c9 +2026-05-08 11:25:13.296 | INFO | __main__:process_task:226 - 任务 3c127cef11dcc1c9098303517611a3c9 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e059e2d157188afb3d2340b19de6c', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3c127cef11dcc1c9098303517611a3c9', 'topic_id': '019c4761435b7072a40790c76f25e856', 'platform_id': '6', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c47615574706b9e1b41d68677672c', 'keyword': '机器人芯片展会', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e059e2d1673ad8aea79287a8ac3f4', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dfe75d6b273a1a489ec9c9eeaeee4'}} +2026-05-08 11:25:13.683 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3bd0a88baa792e7d2ad7e19db5343b54', 'project_id': '019d01d4565672b2820129c03dec7c24', 'keyword_id': '019d01d537bf7276a4680ede45d14441', 'keyword': '亚马逊跨境收款平台推荐', 'brand': 'PingPong', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:25:16', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:42', 'update_time': '2026-05-08 11:25:16', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:25:13.683 | INFO | __main__:process_task:210 - 开始处理任务: 亚马逊跨境收款平台推荐 - 3bd0a88baa792e7d2ad7e19db5343b54 +2026-05-08 11:26:00.844 | INFO | __main__:process_task:226 - 任务 3bd0a88baa792e7d2ad7e19db5343b54 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e059eeea473cc96defd849e2bf25b', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3bd0a88baa792e7d2ad7e19db5343b54', 'topic_id': '019d01d52d3e71c9b188a01918075839', 'platform_id': '6', 'project_id': '019d01d4565672b2820129c03dec7c24', 'keyword_id': '019d01d537bf7276a4680ede45d14441', 'keyword': '亚马逊跨境收款平台推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e059eeea473cc96defd849e373c2b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03dee08b70ae863ec4cc93451a93'}} +2026-05-08 11:26:01.156 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3ba7b5d0c9da0d8b3272916228148b35', 'project_id': '019a29a7129c70d786379848802ec45e', 'keyword_id': '019a2a1a1e0e728f9ffd0efc51a5376c', 'keyword': '儿童镜片防控眼镜排行榜', 'brand': '依视路', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:26:04', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:18', 'update_time': '2026-05-08 11:26:04', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:26:01.156 | INFO | __main__:process_task:210 - 开始处理任务: 儿童镜片防控眼镜排行榜 - 3ba7b5d0c9da0d8b3272916228148b35 +2026-05-08 11:27:02.707 | INFO | __main__:process_task:226 - 任务 3ba7b5d0c9da0d8b3272916228148b35 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e059fda0271fd91c97b2cec74752e', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3ba7b5d0c9da0d8b3272916228148b35', 'topic_id': '019a2a181fb771e28c862ac4e7243176', 'platform_id': '6', 'project_id': '019a29a7129c70d786379848802ec45e', 'keyword_id': '019a2a1a1e0e728f9ffd0efc51a5376c', 'keyword': '儿童镜片防控眼镜排行榜', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e059fda0271fd91c97b2ced666cff', 'origin_rank': 1, 'prev_rank': 0, 'prev_id': '019e03eb3f7b70ef828e6990e9fec9d3'}} +2026-05-08 11:27:03.139 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3b503c9e683bd37dbc816bebcef3d0ed', 'project_id': '019dfc1ffe5e7024a2cadeed299f91a3', 'keyword_id': '019dfc32dc1c70fdb623d40606486766', 'keyword': '香港文化展哪个好', 'brand': '香港故宫文化博物馆', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:27:06', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:49', 'update_time': '2026-05-08 11:27:06', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:27:03.139 | INFO | __main__:process_task:210 - 开始处理任务: 香港文化展哪个好 - 3b503c9e683bd37dbc816bebcef3d0ed +2026-05-08 11:27:42.453 | INFO | __main__:process_task:226 - 任务 3b503c9e683bd37dbc816bebcef3d0ed 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a07c38723e804838ae96ce452a', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3b503c9e683bd37dbc816bebcef3d0ed', 'topic_id': '019dfc3210db7281b471e455fd90ef17', 'platform_id': '6', 'project_id': '019dfc1ffe5e7024a2cadeed299f91a3', 'keyword_id': '019dfc32dc1c70fdb623d40606486766', 'keyword': '香港文化展哪个好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a07c38723e804838ae9703941b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e058b84517311bb0420fcc778fc59'}} +2026-05-08 11:27:42.958 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3affab17a96f3f53d929da4d75427534', 'project_id': '019da500e3b37096be3d447ce3836e06', 'keyword_id': '019da8d1bcdf72ccb7e7be517fc29e98', 'keyword': '罕见病优选哪种基因治疗', 'brand': '芳拓生物', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:27:46', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:32', 'update_time': '2026-05-08 11:27:46', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:27:42.958 | INFO | __main__:process_task:210 - 开始处理任务: 罕见病优选哪种基因治疗 - 3affab17a96f3f53d929da4d75427534 +2026-05-08 11:28:41.072 | INFO | __main__:process_task:226 - 任务 3affab17a96f3f53d929da4d75427534 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a161547327b0376de6d169a001', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3affab17a96f3f53d929da4d75427534', 'topic_id': '019da8d13dd57314b0fd6ed7c3c094e8', 'platform_id': '6', 'project_id': '019da500e3b37096be3d447ce3836e06', 'keyword_id': '019da8d1bcdf72ccb7e7be517fc29e98', 'keyword': '罕见病优选哪种基因治疗', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a161547327b0376de6d1e6d361', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04266d8d71af8fe103bb4c5a206f'}} +2026-05-08 11:28:41.315 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3adda5dabe3fb4bded792ae05943341d', 'project_id': '01994dfeb91d7344ba52ba58507cfde9', 'keyword_id': '01994dfeb93d72ec88bb4c7026e73d27', 'keyword': '面霜推荐学生党', 'brand': '欧莱雅', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:28:44', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:02', 'update_time': '2026-05-08 11:28:44', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:28:41.315 | INFO | __main__:process_task:210 - 开始处理任务: 面霜推荐学生党 - 3adda5dabe3fb4bded792ae05943341d +2026-05-08 11:29:45.525 | INFO | __main__:process_task:226 - 任务 3adda5dabe3fb4bded792ae05943341d 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a24176719dab1692c62dca1700', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3adda5dabe3fb4bded792ae05943341d', 'topic_id': '01994dff966072dfa41e38812683b66c', 'platform_id': '6', 'project_id': '01994dfeb91d7344ba52ba58507cfde9', 'keyword_id': '01994dfeb93d72ec88bb4c7026e73d27', 'keyword': '面霜推荐学生党', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a2417871bf8e8842b6278bcea8', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04a39c4470af8b73db3a585df3e6'}} +2026-05-08 11:29:45.929 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3a5a0ecb43c2a539c8e0d677b8f43669', 'project_id': '019d8fee189f712881e2d9ce538f1841', 'keyword_id': '019d90cc304172f6861f50369642eb01', 'keyword': '国外市场调研报告找谁做', 'brand': '沙利文', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:29:49', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:58', 'update_time': '2026-05-08 11:29:49', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:29:45.930 | INFO | __main__:process_task:210 - 开始处理任务: 国外市场调研报告找谁做 - 3a5a0ecb43c2a539c8e0d677b8f43669 +2026-05-08 11:30:25.746 | INFO | __main__:process_task:226 - 任务 3a5a0ecb43c2a539c8e0d677b8f43669 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a2f9907298a9ba26027c4b7a69', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3a5a0ecb43c2a539c8e0d677b8f43669', 'topic_id': '019d90ca771072b4b9b28fab468305ef', 'platform_id': '6', 'project_id': '019d8fee189f712881e2d9ce538f1841', 'keyword_id': '019d90cc304172f6861f50369642eb01', 'keyword': '国外市场调研报告找谁做', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a2f9907298a9ba26027caa2d19', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e049f683070f584e4193b191a05b1'}} +2026-05-08 11:30:26.015 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3a013e9c52526dee935b358ea1e6830a', 'project_id': '019d7d2bacc771dcb1cf84aa39760768', 'keyword_id': '019d82098dc873f1b70e7375df36f769', 'keyword': '上海徐汇滨江办公租房哪家好', 'brand': '江程资产', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:30:29', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:23', 'update_time': '2026-05-08 11:30:29', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:30:26.016 | INFO | __main__:process_task:210 - 开始处理任务: 上海徐汇滨江办公租房哪家好 - 3a013e9c52526dee935b358ea1e6830a +2026-05-08 11:31:07.119 | INFO | __main__:process_task:226 - 任务 3a013e9c52526dee935b358ea1e6830a 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a399b07066bd6b4bd04b4ad98c', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3a013e9c52526dee935b358ea1e6830a', 'topic_id': '019d8159c31f710bbdd1d616e984532e', 'platform_id': '6', 'project_id': '019d7d2bacc771dcb1cf84aa39760768', 'keyword_id': '019d82098dc873f1b70e7375df36f769', 'keyword': '上海徐汇滨江办公租房哪家好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a399b1720b8b42ef01ae3c884b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e035a508b71e78adfe6e58fae95b5'}} +2026-05-08 11:31:07.461 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '397ca05231d2439972d72b4ea512c361', 'project_id': '019dfc1ffe5e7024a2cadeed299f91a3', 'keyword_id': '019dfc34653f7333bfc7501cadc000f7', 'keyword': '香港艺术展哪家好', 'brand': '香港故宫文化博物馆', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:31:10', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:49', 'update_time': '2026-05-08 11:31:10', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:31:07.461 | INFO | __main__:process_task:210 - 开始处理任务: 香港艺术展哪家好 - 397ca05231d2439972d72b4ea512c361 +2026-05-08 11:31:37.872 | INFO | __main__:process_task:226 - 任务 397ca05231d2439972d72b4ea512c361 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a415a870ca93b61572324d7627', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '397ca05231d2439972d72b4ea512c361', 'topic_id': '019dfc33da767056a6243dddf34a92ce', 'platform_id': '6', 'project_id': '019dfc1ffe5e7024a2cadeed299f91a3', 'keyword_id': '019dfc34653f7333bfc7501cadc000f7', 'keyword': '香港艺术展哪家好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a415a870ca93b615723319bf54', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e046d354170449312687f1628843e'}} +2026-05-08 11:31:38.227 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '392c643be0a6b67c18b2e317501dd049', 'project_id': '019be586fafb73cda247d02959213a71', 'keyword_id': '019be58d1f817356a11b48ecd3637230', 'keyword': '香港具有社区感的都市酒店', 'brand': '东隅', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:31:41', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:30', 'update_time': '2026-05-08 11:31:41', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:31:38.227 | INFO | __main__:process_task:210 - 开始处理任务: 香港具有社区感的都市酒店 - 392c643be0a6b67c18b2e317501dd049 +2026-05-08 11:32:10.419 | INFO | __main__:process_task:226 - 任务 392c643be0a6b67c18b2e317501dd049 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a48d057250adbc09e3c2885c4e', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '392c643be0a6b67c18b2e317501dd049', 'topic_id': '019be58a150272d4a9a6c732ed85f887', 'platform_id': '6', 'project_id': '019be586fafb73cda247d02959213a71', 'keyword_id': '019be58d1f817356a11b48ecd3637230', 'keyword': '香港具有社区感的都市酒店', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a48d057250adbc09e3c33aec7d', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e041b7e9e7394ac63c9a1e34c93e4'}} +2026-05-08 11:32:10.938 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '390058e21a0ddf43ffd1aaec3ef82a98', 'project_id': '019afd0e0a39717bbefa31cf812231a0', 'keyword_id': '019b8c08dffe73e6aef732eeba4efb45', 'keyword': '奥克斯好不好', 'brand': '奥克斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:32:13', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:10', 'update_time': '2026-05-08 11:32:13', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:32:10.938 | INFO | __main__:process_task:210 - 开始处理任务: 奥克斯好不好 - 390058e21a0ddf43ffd1aaec3ef82a98 +2026-05-08 11:32:55.258 | INFO | __main__:process_task:226 - 任务 390058e21a0ddf43ffd1aaec3ef82a98 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a535c570c58f2b60525e0c7a88', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '390058e21a0ddf43ffd1aaec3ef82a98', 'topic_id': '019b8c06393872269c92939e519b839f', 'platform_id': '6', 'project_id': '019afd0e0a39717bbefa31cf812231a0', 'keyword_id': '019b8c08dffe73e6aef732eeba4efb45', 'keyword': '奥克斯好不好', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a535c671c3ae7015eb6b173a01', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e043e24df7118a0d75e248b3f17da'}} +2026-05-08 11:32:55.619 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '38a8fa683d57634db3340cbd232eed2e', 'project_id': '01994dfeb91d7344ba52ba58507cfde9', 'keyword_id': '019a2980ee0070998182bf0ec18d8671', 'keyword': '欧莱雅', 'brand': '欧莱雅', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:32:58', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:02', 'update_time': '2026-05-08 11:32:58', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:32:55.619 | INFO | __main__:process_task:210 - 开始处理任务: 欧莱雅 - 38a8fa683d57634db3340cbd232eed2e +2026-05-08 11:33:33.294 | INFO | __main__:process_task:226 - 任务 38a8fa683d57634db3340cbd232eed2e 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a5cf11710b80683331b4286c93', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '38a8fa683d57634db3340cbd232eed2e', 'topic_id': '019a297b19ab7227b7fb15edd1940952', 'platform_id': '6', 'project_id': '01994dfeb91d7344ba52ba58507cfde9', 'keyword_id': '019a2980ee0070998182bf0ec18d8671', 'keyword': '欧莱雅', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a5cf1273ecab253cfff9a70553', 'origin_rank': 1, 'prev_rank': 0, 'prev_id': '019dfe621ef973488af9276aef7cb97b'}} +2026-05-08 11:33:33.609 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3861fcdec27e6017c93c33729dc5ee31', 'project_id': '019cd13f388773cdbf88638cc0d34ddd', 'keyword_id': '019cd14af82d7020bccb84a2e2fb79ad', 'keyword': '太天岁宝真的有用吗', 'brand': '太天岁宝', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:33:36', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:58', 'update_time': '2026-05-08 11:33:36', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:33:33.609 | INFO | __main__:process_task:210 - 开始处理任务: 太天岁宝真的有用吗 - 3861fcdec27e6017c93c33729dc5ee31 +2026-05-08 11:33:57.427 | INFO | __main__:process_task:226 - 任务 3861fcdec27e6017c93c33729dc5ee31 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a6345672848e742bd5000acea3', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3861fcdec27e6017c93c33729dc5ee31', 'topic_id': '019cd14ac91b7323a5ffe19ab5dd7030', 'platform_id': '6', 'project_id': '019cd13f388773cdbf88638cc0d34ddd', 'keyword_id': '019cd14af82d7020bccb84a2e2fb79ad', 'keyword': '太天岁宝真的有用吗', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a6345672848e742bd500574765', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e045a718870969a4c4e66965978b5'}} +2026-05-08 11:33:57.703 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3838e658648a9c8590790785f0fc3cc1', 'project_id': '019dba250737726695bad432c51d744e', 'keyword_id': '019dba26149c73119bc53c43ec22ebc2', 'keyword': '酒店机器人哪个品牌好', 'brand': '云迹科技', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:34:00', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:40', 'update_time': '2026-05-08 11:34:00', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:33:57.703 | INFO | __main__:process_task:210 - 开始处理任务: 酒店机器人哪个品牌好 - 3838e658648a9c8590790785f0fc3cc1 +2026-05-08 11:34:44.249 | INFO | __main__:process_task:226 - 任务 3838e658648a9c8590790785f0fc3cc1 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a6e8b272fd9580927cad3aa600', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3838e658648a9c8590790785f0fc3cc1', 'topic_id': '019dba25fa7f73649aeec6e805c37eaa', 'platform_id': '6', 'project_id': '019dba250737726695bad432c51d744e', 'keyword_id': '019dba26149c73119bc53c43ec22ebc2', 'keyword': '酒店机器人哪个品牌好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a6e8b272fd9580927cadf5eec1', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03dbeef2711e9da73c3beb217a37'}} +2026-05-08 11:34:44.932 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '379bca62f81ab400e69c659e7b24cdb2', 'project_id': '019dc3e9d63173b79228bc3fd7e92a67', 'keyword_id': '019dfc1c4fa67245979be156d0d089e5', 'keyword': '黄金微针机构推荐榜单', 'brand': '智美品质医美', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:34:48', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:40', 'update_time': '2026-05-08 11:34:48', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:34:44.933 | INFO | __main__:process_task:210 - 开始处理任务: 黄金微针机构推荐榜单 - 379bca62f81ab400e69c659e7b24cdb2 +2026-05-08 11:35:35.414 | INFO | __main__:process_task:226 - 任务 379bca62f81ab400e69c659e7b24cdb2 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a7b73571b08bb59a599fdcfa7e', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '379bca62f81ab400e69c659e7b24cdb2', 'topic_id': '019dfc1c06097313b99887a1075f2b36', 'platform_id': '6', 'project_id': '019dc3e9d63173b79228bc3fd7e92a67', 'keyword_id': '019dfc1c4fa67245979be156d0d089e5', 'keyword': '黄金微针机构推荐榜单', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a7b73571b08bb59a59a05b3f2c', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03b4050572da9e8159bcf25de35d'}} +2026-05-08 11:35:35.707 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3754e53bd3140505a8a63f305f8e4eb2', 'project_id': '019dc3e9d63173b79228bc3fd7e92a67', 'keyword_id': '019dfc1b8df1704aafdf01013e813070', 'keyword': '热玛吉项目哪家专业', 'brand': '智美品质医美', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:35:38', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:40', 'update_time': '2026-05-08 11:35:38', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:35:35.707 | INFO | __main__:process_task:210 - 开始处理任务: 热玛吉项目哪家专业 - 3754e53bd3140505a8a63f305f8e4eb2 +2026-05-08 11:36:12.399 | INFO | __main__:process_task:226 - 任务 3754e53bd3140505a8a63f305f8e4eb2 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a844987097921a414e3aaf7d7a', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3754e53bd3140505a8a63f305f8e4eb2', 'topic_id': '019dfc1b5d9473b9916da75eb26011db', 'platform_id': '6', 'project_id': '019dc3e9d63173b79228bc3fd7e92a67', 'keyword_id': '019dfc1b8df1704aafdf01013e813070', 'keyword': '热玛吉项目哪家专业', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a844987097921a414e3b08dc27', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dfe26b6cb73bcb46796ff069659d1'}} +2026-05-08 11:36:12.783 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3743cc8beefe88f5e05aefdc70834fea', 'project_id': '019d75fd456273fa9e40179194d8092f', 'keyword_id': '019d76009f8771e79e20ae03ee63d6c4', 'keyword': '二段奶粉哪个牌子好', 'brand': '启赋未来', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:36:15', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:23', 'update_time': '2026-05-08 11:36:15', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:36:12.783 | INFO | __main__:process_task:210 - 开始处理任务: 二段奶粉哪个牌子好 - 3743cc8beefe88f5e05aefdc70834fea +2026-05-08 11:36:46.723 | INFO | __main__:process_task:226 - 任务 3743cc8beefe88f5e05aefdc70834fea 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a8c871704f8680822434ace290', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3743cc8beefe88f5e05aefdc70834fea', 'topic_id': '019d7600865d70cda577156366ed8da7', 'platform_id': '6', 'project_id': '019d75fd456273fa9e40179194d8092f', 'keyword_id': '019d76009f8771e79e20ae03ee63d6c4', 'keyword': '二段奶粉哪个牌子好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a8c871704f8680822434da6f7c', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e040d95af72b782e3299fff849ae7'}} +2026-05-08 11:36:47.357 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3733dcd7adc3a20b9c942e5e8542c96d', 'project_id': '019cadcdf04a71869408821d12c977bc', 'keyword_id': '019cadd74ae57133a267fac0d222c610', 'keyword': '大牌通勤包哪个牌子好', 'brand': '杜嘉班纳', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:36:50', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:57', 'update_time': '2026-05-08 11:36:50', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:36:47.357 | INFO | __main__:process_task:210 - 开始处理任务: 大牌通勤包哪个牌子好 - 3733dcd7adc3a20b9c942e5e8542c96d +2026-05-08 11:37:36.282 | INFO | __main__:process_task:226 - 任务 3733dcd7adc3a20b9c942e5e8542c96d 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05a98da472b08c25c6ef9a246b6f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3733dcd7adc3a20b9c942e5e8542c96d', 'topic_id': '019cadcfb300736f8f691f04dfd8b976', 'platform_id': '6', 'project_id': '019cadcdf04a71869408821d12c977bc', 'keyword_id': '019cadd74ae57133a267fac0d222c610', 'keyword': '大牌通勤包哪个牌子好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05a98da472b08c25c6ef9a324c74', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e036c111471d9bff5ba8b4ee62fe7'}} +2026-05-08 11:37:36.553 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '36b041e57fc41f32f9bd26b8a4538d34', 'project_id': '019ae42ae8f473cb96f9a8f9bb5c72c0', 'keyword_id': '019ae44eeb0870af8dbc978b0b370922', 'keyword': '年轻人的轿跑SUV', 'brand': '智界R7', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:37:39', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:20', 'update_time': '2026-05-08 11:37:39', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:37:36.553 | INFO | __main__:process_task:210 - 开始处理任务: 年轻人的轿跑SUV - 36b041e57fc41f32f9bd26b8a4538d34 +2026-05-08 11:38:14.091 | INFO | __main__:process_task:226 - 任务 36b041e57fc41f32f9bd26b8a4538d34 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05aa10ee7205bffb11ab02d7f3fb', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '36b041e57fc41f32f9bd26b8a4538d34', 'topic_id': '019ae44a76447250abf31c7419765adc', 'platform_id': '6', 'project_id': '019ae42ae8f473cb96f9a8f9bb5c72c0', 'keyword_id': '019ae44eeb0870af8dbc978b0b370922', 'keyword': '年轻人的轿跑SUV', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05aa10ef71f1946bda7184f2ad0b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e044d428e70cfb846ce53a131f747'}} +2026-05-08 11:38:14.403 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '36a28921adcf7cbf8a9ed9ed011b5a49', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdee7857070d2959b9cfc41e5a484', 'keyword': '张泉灵和学而思大阅读哪个好', 'brand': '学而思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:38:17', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:18', 'update_time': '2026-05-08 11:38:17', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:38:14.403 | INFO | __main__:process_task:210 - 开始处理任务: 张泉灵和学而思大阅读哪个好 - 36a28921adcf7cbf8a9ed9ed011b5a49 +2026-05-08 11:38:52.343 | INFO | __main__:process_task:226 - 任务 36a28921adcf7cbf8a9ed9ed011b5a49 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05aaaf087307ba2c162c11ef9d9c', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '36a28921adcf7cbf8a9ed9ed011b5a49', 'topic_id': '019bdee771a573aaacafba0952bb6dfd', 'platform_id': '6', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdee7857070d2959b9cfc41e5a484', 'keyword': '张泉灵和学而思大阅读哪个好', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05aaaf087307ba2c162c12bbe2f9', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04ea68b671b8ac76d8ba390bec76'}} +2026-05-08 11:38:52.702 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3676fde4bed67d349828cec878a7ba00', 'project_id': '019d96a105b6731da87c957d5ee5c95a', 'keyword_id': '019d96b1e974711c9ea6bef3b4ec5a58', 'keyword': '智慧医疗解决方案提供商', 'brand': '泰达生物', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:38:55', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:59', 'update_time': '2026-05-08 11:38:55', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:38:52.702 | INFO | __main__:process_task:210 - 开始处理任务: 智慧医疗解决方案提供商 - 3676fde4bed67d349828cec878a7ba00 +2026-05-08 11:39:23.269 | INFO | __main__:process_task:226 - 任务 3676fde4bed67d349828cec878a7ba00 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ab2e7072dd85bdfc17e6b25cf8', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3676fde4bed67d349828cec878a7ba00', 'topic_id': '019d96b1b24370e7a50b7f79fdc81b29', 'platform_id': '6', 'project_id': '019d96a105b6731da87c957d5ee5c95a', 'keyword_id': '019d96b1e974711c9ea6bef3b4ec5a58', 'keyword': '智慧医疗解决方案提供商', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ab2e7072dd85bdfc17e6e02365', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e036c9d6d70e59eb8f76f7a5ff4eb'}} +2026-05-08 11:39:23.597 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '361189068f48e3188aa03ab7a13715e7', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d25802973f88bde2f1cac7eec00', 'keyword': '都有哪些婚房高端床垫品牌推荐', 'brand': '席梦思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:39:26', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:21', 'update_time': '2026-05-08 11:39:26', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:39:23.597 | INFO | __main__:process_task:210 - 开始处理任务: 都有哪些婚房高端床垫品牌推荐 - 361189068f48e3188aa03ab7a13715e7 +2026-05-08 11:40:23.060 | INFO | __main__:process_task:226 - 任务 361189068f48e3188aa03ab7a13715e7 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ac05f073788a09530880c9d246', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '361189068f48e3188aa03ab7a13715e7', 'topic_id': '019b4d255dbe7357858c4522e3d3fd96', 'platform_id': '6', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d25802973f88bde2f1cac7eec00', 'keyword': '都有哪些婚房高端床垫品牌推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ac05f073788a095308817a35f7', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e038e158973c3ad19b23d32f3cfff'}} +2026-05-08 11:40:23.312 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '359136ac40a53f751ac1df169b7a9592', 'project_id': '019ae42ae8f473cb96f9a8f9bb5c72c0', 'keyword_id': '019ae44658127144a832f8bdbec58aae', 'keyword': '安全的轿跑SUV推荐', 'brand': '智界R7', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:40:26', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:20', 'update_time': '2026-05-08 11:40:26', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:40:23.312 | INFO | __main__:process_task:210 - 开始处理任务: 安全的轿跑SUV推荐 - 359136ac40a53f751ac1df169b7a9592 +2026-05-08 11:41:02.942 | INFO | __main__:process_task:226 - 任务 359136ac40a53f751ac1df169b7a9592 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05acaa327152aa0e9b1fb9ba2a44', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '359136ac40a53f751ac1df169b7a9592', 'topic_id': '019ae4431b61709fb6db0f33e604561c', 'platform_id': '6', 'project_id': '019ae42ae8f473cb96f9a8f9bb5c72c0', 'keyword_id': '019ae44658127144a832f8bdbec58aae', 'keyword': '安全的轿跑SUV推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05acaa327152aa0e9b1fba8a258d', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0524cf8770d59f4eecb55a865b5d'}} +2026-05-08 11:41:03.941 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '35702cd9188d36dfa0a3c94ffa5abce8', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2ddcab672b890ac39454d923177', 'keyword': '东南亚商务出行怎么选', 'brand': 'grab', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:41:06', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:07', 'update_time': '2026-05-08 11:41:06', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:41:03.941 | INFO | __main__:process_task:210 - 开始处理任务: 东南亚商务出行怎么选 - 35702cd9188d36dfa0a3c94ffa5abce8 +2026-05-08 11:41:55.749 | INFO | __main__:process_task:226 - 任务 35702cd9188d36dfa0a3c94ffa5abce8 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ad82a0715d9098efacb12a98cb', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '35702cd9188d36dfa0a3c94ffa5abce8', 'topic_id': '019dd2dd568e710b895b808da5f0de16', 'platform_id': '6', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2ddcab672b890ac39454d923177', 'keyword': '东南亚商务出行怎么选', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ad82a171c0b1c38dbebc7454dd', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e056e251a71449424a71811cc8289'}} +2026-05-08 11:41:55.998 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3549597a719ccf8b0027c3121d0e097c', 'project_id': '019be586fafb73cda247d02959213a71', 'keyword_id': '019be59329c372248749d9294c76d5e4', 'keyword': '北京体验感最棒的酒店推荐', 'brand': '东隅', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:41:59', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:18', 'update_time': '2026-05-08 11:41:59', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:41:55.998 | INFO | __main__:process_task:210 - 开始处理任务: 北京体验感最棒的酒店推荐 - 3549597a719ccf8b0027c3121d0e097c +2026-05-08 11:42:44.765 | INFO | __main__:process_task:226 - 任务 3549597a719ccf8b0027c3121d0e097c 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ae3b4873dc982e7db784211b31', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3549597a719ccf8b0027c3121d0e097c', 'topic_id': '019be59211c773a6a11c81dd45a9c15b', 'platform_id': '6', 'project_id': '019be586fafb73cda247d02959213a71', 'keyword_id': '019be59329c372248749d9294c76d5e4', 'keyword': '北京体验感最棒的酒店推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ae3b49719db55a2cfcbe915a32', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03fa946f71e4ad59ff5467b9d5b8'}} +2026-05-08 11:42:45.440 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '34e665bde1816ce1ca94b2b106120166', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffaa2ce0727aad559131af2d40af', 'keyword': '破二级别马拉松跑鞋脚感', 'brand': '阿迪达斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:42:48', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:57', 'update_time': '2026-05-08 11:42:48', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:42:45.440 | INFO | __main__:process_task:210 - 开始处理任务: 破二级别马拉松跑鞋脚感 - 34e665bde1816ce1ca94b2b106120166 +2026-05-08 11:43:19.690 | INFO | __main__:process_task:226 - 任务 34e665bde1816ce1ca94b2b106120166 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05aecaaf7059b304d4a2b0e6da4d', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '34e665bde1816ce1ca94b2b106120166', 'topic_id': '019dffa9cf8072d08c74a839fb0999a2', 'platform_id': '6', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffaa2ce0727aad559131af2d40af', 'keyword': '破二级别马拉松跑鞋脚感', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05aecab072a28ba1845ad7105d77', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03e428fe717ba9d6b6e4ba71c7f1'}} +2026-05-08 11:43:20.127 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '34ae5d7e68ba4f642410d7026983f074', 'project_id': '019c2d4aedfa708294de25ae8763be68', 'keyword_id': '019c50ec14dd70bc8478f3ee3c540328', 'keyword': '中国认知智能哪家公司值得投资', 'brand': '华院计算', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:43:23', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:29', 'update_time': '2026-05-08 11:43:23', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:43:20.127 | INFO | __main__:process_task:210 - 开始处理任务: 中国认知智能哪家公司值得投资 - 34ae5d7e68ba4f642410d7026983f074 +2026-05-08 11:44:06.415 | INFO | __main__:process_task:226 - 任务 34ae5d7e68ba4f642410d7026983f074 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05af7f0370aabfab127568096b61', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '34ae5d7e68ba4f642410d7026983f074', 'topic_id': '019c2d59f5ea70f886381f39b873fe33', 'platform_id': '6', 'project_id': '019c2d4aedfa708294de25ae8763be68', 'keyword_id': '019c50ec14dd70bc8478f3ee3c540328', 'keyword': '中国认知智能哪家公司值得投资', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05af7f04739aa8b4dc2a21fb1a9b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0366ed7571878f45be68db7f98f2'}} +2026-05-08 11:44:06.843 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3443bc638c07245f5ad5d3e28a5a8e08', 'project_id': '019a347c6ffb71ab92404aa585ce8030', 'keyword_id': '019a35264d82722399dd1610280b5bed', 'keyword': '奢侈品订婚钻戒推荐', 'brand': 'Tiffany', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:44:09', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:02', 'update_time': '2026-05-08 11:44:09', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:44:06.843 | INFO | __main__:process_task:210 - 开始处理任务: 奢侈品订婚钻戒推荐 - 3443bc638c07245f5ad5d3e28a5a8e08 +2026-05-08 11:44:56.393 | INFO | __main__:process_task:226 - 任务 3443bc638c07245f5ad5d3e28a5a8e08 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b039dc71448e719ca27af2469c', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3443bc638c07245f5ad5d3e28a5a8e08', 'topic_id': '019a35016d4b703ca4acc5513b50b768', 'platform_id': '6', 'project_id': '019a347c6ffb71ab92404aa585ce8030', 'keyword_id': '019a35264d82722399dd1610280b5bed', 'keyword': '奢侈品订婚钻戒推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b039dc71448e719ca27bdb8970', 'origin_rank': 2, 'prev_rank': 0, 'prev_id': '019e047345667200bc077c3a00b2584f'}} +2026-05-08 11:44:56.787 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '33e7d3a139132981c2acc7f145acd3e6', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d2925477065a3012983bb19ac02', 'keyword': '强支撑静音床垫品牌都有哪些', 'brand': '席梦思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:44:59', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:23', 'update_time': '2026-05-08 11:44:59', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:44:56.787 | INFO | __main__:process_task:210 - 开始处理任务: 强支撑静音床垫品牌都有哪些 - 33e7d3a139132981c2acc7f145acd3e6 +2026-05-08 11:45:50.528 | INFO | __main__:process_task:226 - 任务 33e7d3a139132981c2acc7f145acd3e6 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b117da73088da35d384c313255', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '33e7d3a139132981c2acc7f145acd3e6', 'topic_id': '019b4d28cc067341b3bf0609c33a2471', 'platform_id': '6', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d2925477065a3012983bb19ac02', 'keyword': '强支撑静音床垫品牌都有哪些', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b117da73088da35d384c662971', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e053c72d2717089c90665ccaba1e2'}} +2026-05-08 11:45:50.749 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '33ab90d11dad5d19a3a53f2c1dfb30b8', 'project_id': '019abfbb4e5e71a8b2eed80f4876d94d', 'keyword_id': '019ac9a54e3870f59507212de57273b2', 'keyword': '券商AI服务商推荐', 'brand': '华泰证券', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:45:53', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:20', 'update_time': '2026-05-08 11:45:53', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:45:50.749 | INFO | __main__:process_task:210 - 开始处理任务: 券商AI服务商推荐 - 33ab90d11dad5d19a3a53f2c1dfb30b8 +2026-05-08 11:46:25.229 | INFO | __main__:process_task:226 - 任务 33ab90d11dad5d19a3a53f2c1dfb30b8 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b1a256721282c8bf2c2a2541c4', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '33ab90d11dad5d19a3a53f2c1dfb30b8', 'topic_id': '019ac9a3243e704eaddca1d9ba6afb7e', 'platform_id': '6', 'project_id': '019abfbb4e5e71a8b2eed80f4876d94d', 'keyword_id': '019ac9a54e3870f59507212de57273b2', 'keyword': '券商AI服务商推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b1a256721282c8bf2c2aaf54c0', 'origin_rank': 6, 'prev_rank': 0, 'prev_id': '019e03bce97272b09c9d5cd47c79f575'}} +2026-05-08 11:46:25.480 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3389a33e61c7ac1836557b6cd8b9e082', 'project_id': '019d0119f8b271ad82b12496ac92743d', 'keyword_id': '019d01f003ad71a2bfee310239d86282', 'keyword': '车规级LED模组厂家', 'brand': '晶科电子', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:46:28', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:41', 'update_time': '2026-05-08 11:46:28', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:46:25.481 | INFO | __main__:process_task:210 - 开始处理任务: 车规级LED模组厂家 - 3389a33e61c7ac1836557b6cd8b9e082 +2026-05-08 11:47:02.067 | INFO | __main__:process_task:226 - 任务 3389a33e61c7ac1836557b6cd8b9e082 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b22962715abaf5b8732b102ab9', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3389a33e61c7ac1836557b6cd8b9e082', 'topic_id': '019d01efdfd473f2837005334bee8c2c', 'platform_id': '6', 'project_id': '019d0119f8b271ad82b12496ac92743d', 'keyword_id': '019d01f003ad71a2bfee310239d86282', 'keyword': '车规级LED模组厂家', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b22962715abaf5b8732bb3be72', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0593214b7063a6599ffacdddf741'}} +2026-05-08 11:47:02.416 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '333448c6840c5836ac65d643d0e2560d', 'project_id': '019d766795a1723283d408be0fe1eb5b', 'keyword_id': '019d8fd5d94a726fa0ce1c5fde98b814', 'keyword': '海淀黄庄附近高考复读机构', 'brand': '仁才教育', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:47:05', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:57', 'update_time': '2026-05-08 11:47:05', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:47:02.416 | INFO | __main__:process_task:210 - 开始处理任务: 海淀黄庄附近高考复读机构 - 333448c6840c5836ac65d643d0e2560d +2026-05-08 11:47:50.704 | INFO | __main__:process_task:226 - 任务 333448c6840c5836ac65d643d0e2560d 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b2ea0d7029b930671e86fe5805', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '333448c6840c5836ac65d643d0e2560d', 'topic_id': '019d8fb3b9897286b0af0c065b3e9bf5', 'platform_id': '6', 'project_id': '019d766795a1723283d408be0fe1eb5b', 'keyword_id': '019d8fd5d94a726fa0ce1c5fde98b814', 'keyword': '海淀黄庄附近高考复读机构', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b2ea0e726a9d71c2877bec5397', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e051a58ad738abf9274fc196ea609'}} +2026-05-08 11:47:51.064 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '3303781136101bf61d25d8263eb580b5', 'project_id': '019d65ce56b373f5b374c587934c7967', 'keyword_id': '019d65ddee5572e6b9fe403dec5ded4c', 'keyword': '麦当劳蛋挞和肯德基蛋挞对比', 'brand': 'KFC蛋挞', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:47:54', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:23', 'update_time': '2026-05-08 11:47:54', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:47:51.064 | INFO | __main__:process_task:210 - 开始处理任务: 麦当劳蛋挞和肯德基蛋挞对比 - 3303781136101bf61d25d8263eb580b5 +2026-05-08 11:48:34.385 | INFO | __main__:process_task:226 - 任务 3303781136101bf61d25d8263eb580b5 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b399fb729bbe8299343fa70444', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '3303781136101bf61d25d8263eb580b5', 'topic_id': '019d65ddbb3273f4a0f3a21c3860b6bd', 'platform_id': '6', 'project_id': '019d65ce56b373f5b374c587934c7967', 'keyword_id': '019d65ddee5572e6b9fe403dec5ded4c', 'keyword': '麦当劳蛋挞和肯德基蛋挞对比', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b399fc7113a30bad841f8786dd', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0577062173949b3514a00a12c902'}} +2026-05-08 11:48:34.699 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '32b6097b62c76ed9ad0836daf144a177', 'project_id': '019a95f401567182a2e3d481db5bf0cc', 'keyword_id': '019a960889cb70ffa69e45f96636686f', 'keyword': '苹果16promax手机壳哪个牌子的好', 'brand': '图拉斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:48:37', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:08', 'update_time': '2026-05-08 11:48:37', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:48:34.701 | INFO | __main__:process_task:210 - 开始处理任务: 苹果16promax手机壳哪个牌子的好 - 32b6097b62c76ed9ad0836daf144a177 +2026-05-08 11:49:06.986 | INFO | __main__:process_task:226 - 任务 32b6097b62c76ed9ad0836daf144a177 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b4113a725b9de0ac12b413ab0f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '32b6097b62c76ed9ad0836daf144a177', 'topic_id': '019a95f8f3427039a6d80722146a6b2d', 'platform_id': '6', 'project_id': '019a95f401567182a2e3d481db5bf0cc', 'keyword_id': '019a960889cb70ffa69e45f96636686f', 'keyword': '苹果16promax手机壳哪个牌子的好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b4113b7180825589c6d205d72c', 'origin_rank': 3, 'prev_rank': 0, 'prev_id': '019e03e8126a72109326ddd5e11d657b'}} +2026-05-08 11:49:07.319 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '328ce6b17efaacc56f288b7e277bcd41', 'project_id': '019be46add71719f90b48d128d961455', 'keyword_id': '019be46db7e771f2b57f3d1e8fb7c0d0', 'keyword': '男生新年礼物', 'brand': 'ps5', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:49:10', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:18', 'update_time': '2026-05-08 11:49:10', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:49:07.319 | INFO | __main__:process_task:210 - 开始处理任务: 男生新年礼物 - 328ce6b17efaacc56f288b7e277bcd41 +2026-05-08 11:50:01.683 | INFO | __main__:process_task:226 - 任务 328ce6b17efaacc56f288b7e277bcd41 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b4eb77704698a0ed9ad033797f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '328ce6b17efaacc56f288b7e277bcd41', 'topic_id': '019be46c75377229b258cef5164223e1', 'platform_id': '6', 'project_id': '019be46add71719f90b48d128d961455', 'keyword_id': '019be46db7e771f2b57f3d1e8fb7c0d0', 'keyword': '男生新年礼物', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b4eb78723e971f90a03ba58157', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04415a67727b8224c3fd911eb3f0'}} +2026-05-08 11:50:02.305 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '32588d6186c1579db59cd8f9139bb86f', 'project_id': '019ddc6877a572e2b9a75e8c01c9d981', 'keyword_id': '019ddc6f37d671feb9fc963034ac4077', 'keyword': '热玛吉品牌推荐', 'brand': '智美', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:50:05', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:07', 'update_time': '2026-05-08 11:50:05', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:50:02.305 | INFO | __main__:process_task:210 - 开始处理任务: 热玛吉品牌推荐 - 32588d6186c1579db59cd8f9139bb86f +2026-05-08 11:50:51.286 | INFO | __main__:process_task:226 - 任务 32588d6186c1579db59cd8f9139bb86f 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b5b1a3708f9d4d8c4360564982', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '32588d6186c1579db59cd8f9139bb86f', 'topic_id': '019ddc6f0a4b720abd4495e7e444784e', 'platform_id': '6', 'project_id': '019ddc6877a572e2b9a75e8c01c9d981', 'keyword_id': '019ddc6f37d671feb9fc963034ac4077', 'keyword': '热玛吉品牌推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b5b1a471d68329755bdc87d190', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e045ec91c700884dfc350c888b78b'}} +2026-05-08 11:50:51.540 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '32145db130890c5ad784bd2adee354c4', 'project_id': '019a347c6ffb71ab92404aa585ce8030', 'keyword_id': '019a3525e875712e832420a0b8c7da3f', 'keyword': '高奢婚戒推荐', 'brand': 'Tiffany', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:50:54', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:18', 'update_time': '2026-05-08 11:50:54', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:50:51.540 | INFO | __main__:process_task:210 - 开始处理任务: 高奢婚戒推荐 - 32145db130890c5ad784bd2adee354c4 +2026-05-08 11:51:49.984 | INFO | __main__:process_task:226 - 任务 32145db130890c5ad784bd2adee354c4 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b68bb37371a7801ec1e5b35cdc', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '32145db130890c5ad784bd2adee354c4', 'topic_id': '019a35016d4b703ca4acc5513b50b768', 'platform_id': '6', 'project_id': '019a347c6ffb71ab92404aa585ce8030', 'keyword_id': '019a3525e875712e832420a0b8c7da3f', 'keyword': '高奢婚戒推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b68bb470ba80d3fc8a34e419dc', 'origin_rank': 2, 'prev_rank': 0, 'prev_id': '019dff8a19d1715ea7e563c3a6fbe0b7'}} +2026-05-08 11:51:50.365 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '31d25e9f9f651e124ecdefdfc0b3f6d0', 'project_id': '019daf4f840472019f1f4ee388d61efb', 'keyword_id': '019daf50709172a4b47997e97868fe51', 'keyword': '招标采购saas平台', 'brand': '招采进宝', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:51:53', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:01', 'update_time': '2026-05-08 11:51:53', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:51:50.365 | INFO | __main__:process_task:210 - 开始处理任务: 招标采购saas平台 - 31d25e9f9f651e124ecdefdfc0b3f6d0 +2026-05-08 11:52:38.985 | INFO | __main__:process_task:226 - 任务 31d25e9f9f651e124ecdefdfc0b3f6d0 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b756b071b7b3d96c0305e018a5', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '31d25e9f9f651e124ecdefdfc0b3f6d0', 'topic_id': '019daf4ff38b70739094e7454e722b02', 'platform_id': '6', 'project_id': '019daf4f840472019f1f4ee388d61efb', 'keyword_id': '019daf50709172a4b47997e97868fe51', 'keyword': '招标采购saas平台', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b756b171d39aac6c0cf409877d', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0494fa61701a97e777def0a661d9'}} +2026-05-08 11:52:39.199 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '317add1d48ae7561038ab5e0a290cb40', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c41c141e673b4b9fafba1b6c8bbaf', 'keyword': '具身智能机器人展会', 'brand': '国展', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:52:42', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:29', 'update_time': '2026-05-08 11:52:42', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:52:39.200 | INFO | __main__:process_task:210 - 开始处理任务: 具身智能机器人展会 - 317add1d48ae7561038ab5e0a290cb40 +2026-05-08 11:53:33.229 | INFO | __main__:process_task:226 - 任务 317add1d48ae7561038ab5e0a290cb40 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b80d6e73bb98de65ace3e446d1', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '317add1d48ae7561038ab5e0a290cb40', 'topic_id': '019c418decb7708dbc2cebe23942efb7', 'platform_id': '6', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c41c141e673b4b9fafba1b6c8bbaf', 'keyword': '具身智能机器人展会', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b80d6f73ba8bad104f72f2b8a5', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0524054f70358ee64a960da5d77d'}} +2026-05-08 11:53:33.662 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '31139253f1f0d684fd940d247b2c27a9', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2e78b0f7034b49d9ae9884f82e7', 'keyword': '东南亚企业出行管理怎么选', 'brand': 'grab', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:53:36', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:07', 'update_time': '2026-05-08 11:53:36', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:53:33.662 | INFO | __main__:process_task:210 - 开始处理任务: 东南亚企业出行管理怎么选 - 31139253f1f0d684fd940d247b2c27a9 +2026-05-08 11:54:22.290 | INFO | __main__:process_task:226 - 任务 31139253f1f0d684fd940d247b2c27a9 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b8e43771b9b56e1fe33944be70', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '31139253f1f0d684fd940d247b2c27a9', 'topic_id': '019dd2dd886d71cd919aad794ce8d96d', 'platform_id': '6', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2e78b0f7034b49d9ae9884f82e7', 'keyword': '东南亚企业出行管理怎么选', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b8e4387140b17b9ac111deac89', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e050a3b2e70fdb7dbf7220bbb16a9'}} +2026-05-08 11:54:22.683 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '30f16893b58ad2b203b1cb3d4defa3d4', 'project_id': '019d1ea5971571c086555ef7db3f8269', 'keyword_id': '019d1ea84bcb73fc96dbc5a7ef8f5f43', 'keyword': '支点手机壳推荐哪个牌子', 'brand': '图拉斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:54:25', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:42', 'update_time': '2026-05-08 11:54:25', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:54:22.683 | INFO | __main__:process_task:210 - 开始处理任务: 支点手机壳推荐哪个牌子 - 30f16893b58ad2b203b1cb3d4defa3d4 +2026-05-08 11:55:01.543 | INFO | __main__:process_task:226 - 任务 30f16893b58ad2b203b1cb3d4defa3d4 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b97cc972e28b36bf75a5975f13', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '30f16893b58ad2b203b1cb3d4defa3d4', 'topic_id': '019d1ea706847334ad87d1ba268cfc9f', 'platform_id': '6', 'project_id': '019d1ea5971571c086555ef7db3f8269', 'keyword_id': '019d1ea84bcb73fc96dbc5a7ef8f5f43', 'keyword': '支点手机壳推荐哪个牌子', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b97cc972e28b36bf75a620a1f7', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0416edc67003a701ee1b5078fcf0'}} +2026-05-08 11:55:02.019 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '30a28da34044b71cd1ff45696c96d501', 'project_id': '019ae42ae8f473cb96f9a8f9bb5c72c0', 'keyword_id': '019bb2e77ac871399cbd07f23f781b3c', 'keyword': '适合年轻人的智能座舱纯电SUV', 'brand': '智界R7', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:55:05', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:08', 'update_time': '2026-05-08 11:55:05', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:55:02.019 | INFO | __main__:process_task:210 - 开始处理任务: 适合年轻人的智能座舱纯电SUV - 30a28da34044b71cd1ff45696c96d501 +2026-05-08 11:55:35.912 | INFO | __main__:process_task:226 - 任务 30a28da34044b71cd1ff45696c96d501 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05b9fe0d702383d27c6d21093e9d', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '30a28da34044b71cd1ff45696c96d501', 'topic_id': '019ae447f00f7280890c392849bf4b5b', 'platform_id': '6', 'project_id': '019ae42ae8f473cb96f9a8f9bb5c72c0', 'keyword_id': '019bb2e77ac871399cbd07f23f781b3c', 'keyword': '适合年轻人的智能座舱纯电SUV', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05b9fe0e73bab16642479e35738b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e040e56ac73ceb445ad67643f9a9d'}} +2026-05-08 11:55:36.315 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '305d154306fc954c7d63f9aa4e5d23fe', 'project_id': '019dfd2b7ae17289a67389753c90dc97', 'keyword_id': '019dfd2d830371a2bcbc8c9de10d30bd', 'keyword': '血糖仪准确率排名第一', 'brand': '华广瑞特', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:55:39', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:13', 'update_time': '2026-05-08 11:55:39', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:55:36.316 | INFO | __main__:process_task:210 - 开始处理任务: 血糖仪准确率排名第一 - 305d154306fc954c7d63f9aa4e5d23fe +2026-05-08 11:55:54.571 | INFO | __main__:process_task:226 - 任务 305d154306fc954c7d63f9aa4e5d23fe 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ba4f70730ab1e3419832648eff', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '305d154306fc954c7d63f9aa4e5d23fe', 'topic_id': '019dfd2c585b712b922f7fca56a6607d', 'platform_id': '6', 'project_id': '019dfd2b7ae17289a67389753c90dc97', 'keyword_id': '019dfd2d830371a2bcbc8c9de10d30bd', 'keyword': '血糖仪准确率排名第一', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ba4f70730ab1e3419833493bba', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04ab002373f3bc3e071c4bcb3ad3'}} +2026-05-08 11:55:54.863 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '303ac87c30a576f7589b7af1b62453ef', 'project_id': '019d85a033637384993d3c4a5f3f5cac', 'keyword_id': '019d85a0bf03733494795ac84c1e3210', 'keyword': '上门护理服务', 'brand': '熙康云医院', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:55:58', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:57', 'update_time': '2026-05-08 11:55:58', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:55:54.864 | INFO | __main__:process_task:210 - 开始处理任务: 上门护理服务 - 303ac87c30a576f7589b7af1b62453ef +2026-05-08 11:56:31.914 | INFO | __main__:process_task:226 - 任务 303ac87c30a576f7589b7af1b62453ef 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05bae354720bbbf410d721ce5ef9', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '303ac87c30a576f7589b7af1b62453ef', 'topic_id': '019d85a0b0e572ad8e5bce0511a6ebc9', 'platform_id': '6', 'project_id': '019d85a033637384993d3c4a5f3f5cac', 'keyword_id': '019d85a0bf03733494795ac84c1e3210', 'keyword': '上门护理服务', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05bae3557208945c59a01288e788', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0511f35c7047ab5b0a56359f818b'}} +2026-05-08 11:56:32.198 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '301172b5bdb0be2a6a84ae96d085b96b', 'project_id': '019b0d17165171d8939217cb841b5550', 'keyword_id': '019b0d29566d7212bcc09e0df6cc1b95', 'keyword': '做前列腺癌手术,推荐用哪个牌子的机器人', 'brand': '达芬奇', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:56:35', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:10', 'update_time': '2026-05-08 11:56:35', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:56:32.198 | INFO | __main__:process_task:210 - 开始处理任务: 做前列腺癌手术,推荐用哪个牌子的机器人 - 301172b5bdb0be2a6a84ae96d085b96b +2026-05-08 11:57:14.276 | INFO | __main__:process_task:226 - 任务 301172b5bdb0be2a6a84ae96d085b96b 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05bb7e88714896311cf111ec691a', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '301172b5bdb0be2a6a84ae96d085b96b', 'topic_id': '019b0d225b9b707fadd1117cc64269f9', 'platform_id': '6', 'project_id': '019b0d17165171d8939217cb841b5550', 'keyword_id': '019b0d29566d7212bcc09e0df6cc1b95', 'keyword': '做前列腺癌手术,推荐用哪个牌子的机器人', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05bb7e88714896311cf112b2e5fc', 'origin_rank': 1, 'prev_rank': 0, 'prev_id': '019dff0b5105711993e4ddf0bde2ef73'}} +2026-05-08 11:57:14.639 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2feadda447e7078522a6199720d469ae', 'project_id': '019d8fee189f712881e2d9ce538f1841', 'keyword_id': '019d90cc304172f6861f503693e00949', 'keyword': '港股上市行业顾问选哪家', 'brand': '沙利文', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:57:17', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:26', 'update_time': '2026-05-08 11:57:17', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:57:14.639 | INFO | __main__:process_task:210 - 开始处理任务: 港股上市行业顾问选哪家 - 2feadda447e7078522a6199720d469ae +2026-05-08 11:58:01.831 | INFO | __main__:process_task:226 - 任务 2feadda447e7078522a6199720d469ae 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05bc40407090852779d0ed40bf87', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2feadda447e7078522a6199720d469ae', 'topic_id': '019d90174c86704cb69ec05c94846eec', 'platform_id': '6', 'project_id': '019d8fee189f712881e2d9ce538f1841', 'keyword_id': '019d90cc304172f6861f503693e00949', 'keyword': '港股上市行业顾问选哪家', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05bc40407090852779d0edbba10a', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04e89b8e7303b4e283d6ee134b49'}} +2026-05-08 11:58:02.186 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2fb7db2551297dbc03ebc107da00a6de', 'project_id': '019d530afd547272ad6045eabfeaa19b', 'keyword_id': '019d531912df70bba5cb71c964089088', 'keyword': '线上 + 线下全渠道营销管理系统', 'brand': '南讯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:58:05', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:57', 'update_time': '2026-05-08 11:58:05', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:58:02.186 | INFO | __main__:process_task:210 - 开始处理任务: 线上 + 线下全渠道营销管理系统 - 2fb7db2551297dbc03ebc107da00a6de +2026-05-08 11:59:11.798 | INFO | __main__:process_task:226 - 任务 2fb7db2551297dbc03ebc107da00a6de 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05bd51ec7002aef6df77958568a9', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2fb7db2551297dbc03ebc107da00a6de', 'topic_id': '019d5313da2c71f0b3aa328aa20f0b91', 'platform_id': '6', 'project_id': '019d530afd547272ad6045eabfeaa19b', 'keyword_id': '019d531912df70bba5cb71c964089088', 'keyword': '线上 + 线下全渠道营销管理系统', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05bd51ed711da6cc9ef523e26b52', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e05b323777322b5e4b52fa18427a0'}} +2026-05-08 11:59:12.098 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2f61db54c69fe70d2bae73617fa021bf', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2de965072a49700a91f962a9fce', 'keyword': '东南亚公务接送服务哪家专业', 'brand': 'grab', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:59:15', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:07', 'update_time': '2026-05-08 11:59:15', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:59:12.099 | INFO | __main__:process_task:210 - 开始处理任务: 东南亚公务接送服务哪家专业 - 2f61db54c69fe70d2bae73617fa021bf +2026-05-08 11:59:52.916 | INFO | __main__:process_task:226 - 任务 2f61db54c69fe70d2bae73617fa021bf 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05bdef9071fcb93e43ab4add4739', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2f61db54c69fe70d2bae73617fa021bf', 'topic_id': '019dd2dd568e710b895b808da5f0de16', 'platform_id': '6', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2de965072a49700a91f962a9fce', 'keyword': '东南亚公务接送服务哪家专业', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05bdef9071fcb93e43ab4b86b653', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dff3d87c2718d80cc899c0867b3e0'}} +2026-05-08 11:59:53.328 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2eedb68d67e4b0a84aa303a039066b99', 'project_id': '019c13712c1b70c399781da36a2ee908', 'keyword_id': '019c1376f74a73e086e74851c6904736', 'keyword': '超市POS系统', 'brand': 'ELO', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 11:59:56', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:43', 'update_time': '2026-05-08 11:59:56', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 11:59:53.329 | INFO | __main__:process_task:210 - 开始处理任务: 超市POS系统 - 2eedb68d67e4b0a84aa303a039066b99 +2026-05-08 12:00:56.776 | INFO | __main__:process_task:226 - 任务 2eedb68d67e4b0a84aa303a039066b99 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05bed7067399a8efe1a460e97a24', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2eedb68d67e4b0a84aa303a039066b99', 'topic_id': '019c1374c65472929556bbd762310af5', 'platform_id': '6', 'project_id': '019c13712c1b70c399781da36a2ee908', 'keyword_id': '019c1376f74a73e086e74851c6904736', 'keyword': '超市POS系统', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05bed7067399a8efe1a4619c9593', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0428b28f72b7beadbacb8a09545b'}} +2026-05-08 12:00:57.137 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2ebeac2b461de3410776d7f36a73bca7', 'project_id': '019d1ea5971571c086555ef7db3f8269', 'keyword_id': '019d1ea84bcb73fc96dbc5a7f9abd81c', 'keyword': '苹果手机壳哪家质量好', 'brand': '图拉斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:01:00', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:42', 'update_time': '2026-05-08 12:01:00', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:00:57.137 | INFO | __main__:process_task:210 - 开始处理任务: 苹果手机壳哪家质量好 - 2ebeac2b461de3410776d7f36a73bca7 +2026-05-08 12:01:29.706 | INFO | __main__:process_task:226 - 任务 2ebeac2b461de3410776d7f36a73bca7 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05bf659d71f59b59e59772ac8bea', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2ebeac2b461de3410776d7f36a73bca7', 'topic_id': '019d1ea780c772c895980c222192baeb', 'platform_id': '6', 'project_id': '019d1ea5971571c086555ef7db3f8269', 'keyword_id': '019d1ea84bcb73fc96dbc5a7f9abd81c', 'keyword': '苹果手机壳哪家质量好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05bf659d71f59b59e597733b2ee2', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04db0f2872618b5e552f89715da1'}} +2026-05-08 12:01:30.084 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2e9d21d60f98549cbb0429d915f582b0', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c47615574706b9e1b41d680108f16', 'keyword': '具身智能展览会', 'brand': '国展', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:01:33', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:57', 'update_time': '2026-05-08 12:01:33', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:01:30.084 | INFO | __main__:process_task:210 - 开始处理任务: 具身智能展览会 - 2e9d21d60f98549cbb0429d915f582b0 +2026-05-08 12:02:25.371 | INFO | __main__:process_task:226 - 任务 2e9d21d60f98549cbb0429d915f582b0 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c03ebb723ca8eec98a42200e42', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2e9d21d60f98549cbb0429d915f582b0', 'topic_id': '019c4761435b7072a40790c76f25e856', 'platform_id': '6', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c47615574706b9e1b41d680108f16', 'keyword': '具身智能展览会', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c03ebc700495bc48847accab26', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03a925a072a9b4a55d91eeee5664'}} +2026-05-08 12:02:25.758 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2e06672f0f59ba798bca5b52bfdf8b6b', 'project_id': '019c13712c1b70c399781da36a2ee908', 'keyword_id': '019c1376f74a73e086e74851ba6adbac', 'keyword': '互动触摸屏', 'brand': 'ELO', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:02:28', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:24', 'update_time': '2026-05-08 12:02:28', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:02:25.758 | INFO | __main__:process_task:210 - 开始处理任务: 互动触摸屏 - 2e06672f0f59ba798bca5b52bfdf8b6b +2026-05-08 12:03:07.650 | INFO | __main__:process_task:226 - 任务 2e06672f0f59ba798bca5b52bfdf8b6b 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c0d96b721190f1d52b88b568e5', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2e06672f0f59ba798bca5b52bfdf8b6b', 'topic_id': '019c1374c65472929556bbd762310af5', 'platform_id': '6', 'project_id': '019c13712c1b70c399781da36a2ee908', 'keyword_id': '019c1376f74a73e086e74851ba6adbac', 'keyword': '互动触摸屏', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c0d96c70449e17d74cadd48a04', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0511709f7105bc426ea0fba10f67'}} +2026-05-08 12:03:07.953 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2ddbef41e59e61f8bc59f49261615409', 'project_id': '019df74fec257337813e2651180be6e0', 'keyword_id': '019df777e8037300a3075e11d95f22a0', 'keyword': '去武汉旅游,热干面外卖点哪家最地道', 'brand': '美团', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:03:11', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:49', 'update_time': '2026-05-08 12:03:11', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:03:07.953 | INFO | __main__:process_task:210 - 开始处理任务: 去武汉旅游,热干面外卖点哪家最地道 - 2ddbef41e59e61f8bc59f49261615409 +2026-05-08 12:03:31.015 | INFO | __main__:process_task:226 - 任务 2ddbef41e59e61f8bc59f49261615409 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c1456c72b6aed616bc7d4c3c75', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2ddbef41e59e61f8bc59f49261615409', 'topic_id': '019df77752b9724ba2eda51c834ea934', 'platform_id': '6', 'project_id': '019df74fec257337813e2651180be6e0', 'keyword_id': '019df777e8037300a3075e11d95f22a0', 'keyword': '去武汉旅游,热干面外卖点哪家最地道', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c1456c72b6aed616bc7e4b4a4f', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e057d9bb570d0b10e28df90766eb3'}} +2026-05-08 12:03:31.406 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2da3034ac40fac0c5485473703113b96', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bded9b2a5738dabdc504829637614', 'keyword': '小学生课外阅读书籍', 'brand': '学而思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:03:34', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:24', 'update_time': '2026-05-08 12:03:34', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:03:31.407 | INFO | __main__:process_task:210 - 开始处理任务: 小学生课外阅读书籍 - 2da3034ac40fac0c5485473703113b96 +2026-05-08 12:04:16.379 | INFO | __main__:process_task:226 - 任务 2da3034ac40fac0c5485473703113b96 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c1f60171c388b5c25a4933384e', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2da3034ac40fac0c5485473703113b96', 'topic_id': '019bded8d37c739c9ba37f19fd427ca7', 'platform_id': '6', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bded9b2a5738dabdc504829637614', 'keyword': '小学生课外阅读书籍', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c1f60171c388b5c25a495df443', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0574e8e5717ca3e027c7db19e882'}} +2026-05-08 12:04:16.769 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2d5a2f8a4b1ec90405d1f979a5a13f8f', 'project_id': '019be4be1ed47194a2e5bd317a177b01', 'keyword_id': '019be4c4bd9671529d277e2aef9fba4a', 'keyword': '国际一线男装10大品牌', 'brand': 'Stefano Ricci', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:04:19', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:30', 'update_time': '2026-05-08 12:04:19', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:04:16.769 | INFO | __main__:process_task:210 - 开始处理任务: 国际一线男装10大品牌 - 2d5a2f8a4b1ec90405d1f979a5a13f8f +2026-05-08 12:05:03.118 | INFO | __main__:process_task:226 - 任务 2d5a2f8a4b1ec90405d1f979a5a13f8f 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c2a910709ca441f7eeadd6db1f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2d5a2f8a4b1ec90405d1f979a5a13f8f', 'topic_id': '019be4c3411970fe86c4943740cfbab8', 'platform_id': '6', 'project_id': '019be4be1ed47194a2e5bd317a177b01', 'keyword_id': '019be4c4bd9671529d277e2aef9fba4a', 'keyword': '国际一线男装10大品牌', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c2a910709ca441f7eeae5c7991', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03a851f8726a8c9c17226fc4dc4b'}} +2026-05-08 12:05:03.472 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2d163edf12b575271e0ff6ffa36a0c66', 'project_id': '019a6b71fcb67118956421a773018434', 'keyword_id': '019d50f0cc637309ab899e134b26868b', 'keyword': '不粘锅推荐', 'brand': '传策', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:05:06', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:19', 'update_time': '2026-05-08 12:05:06', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:05:03.473 | INFO | __main__:process_task:210 - 开始处理任务: 不粘锅推荐 - 2d163edf12b575271e0ff6ffa36a0c66 +2026-05-08 12:05:54.665 | INFO | __main__:process_task:226 - 任务 2d163edf12b575271e0ff6ffa36a0c66 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c37ab97225a69f215f54543640', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2d163edf12b575271e0ff6ffa36a0c66', 'topic_id': '019d50f0915870e59fa5f579c26ef76f', 'platform_id': '6', 'project_id': '019a6b71fcb67118956421a773018434', 'keyword_id': '019d50f0cc637309ab899e134b26868b', 'keyword': '不粘锅推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c37ab97225a69f215f549440e6', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0481ed7d707abd79918569bb2630'}} +2026-05-08 12:05:54.917 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2cada135b158fa5ecbd4fe2406695ee1', 'project_id': '019db9b4df127126902640f3c5499cd3', 'keyword_id': '019db9b82b097139b7ca9b87a4974653', 'keyword': '实战型品牌战略咨询公司推荐', 'brand': '心胜战略咨询', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:05:58', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:40', 'update_time': '2026-05-08 12:05:58', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:05:54.917 | INFO | __main__:process_task:210 - 开始处理任务: 实战型品牌战略咨询公司推荐 - 2cada135b158fa5ecbd4fe2406695ee1 +2026-05-08 12:06:31.332 | INFO | __main__:process_task:226 - 任务 2cada135b158fa5ecbd4fe2406695ee1 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c40494728ba219d9ff724e2380', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2cada135b158fa5ecbd4fe2406695ee1', 'topic_id': '019db9b7917c7015a59f90d06737a90c', 'platform_id': '6', 'project_id': '019db9b4df127126902640f3c5499cd3', 'keyword_id': '019db9b82b097139b7ca9b87a4974653', 'keyword': '实战型品牌战略咨询公司推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c4049571aa939afdd770142c8b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e036233cc72c383362ed75ce4d528'}} +2026-05-08 12:06:31.732 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2c9a7ff07be540bb740bf2fb7c610295', 'project_id': '019dfd2b7ae17289a67389753c90dc97', 'keyword_id': '019dfd2d830371a2bcbc8c9dd4f70475', 'keyword': '血糖仪十大名牌价格', 'brand': '华广瑞特', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:06:34', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:57', 'update_time': '2026-05-08 12:06:34', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:06:31.733 | INFO | __main__:process_task:210 - 开始处理任务: 血糖仪十大名牌价格 - 2c9a7ff07be540bb740bf2fb7c610295 +2026-05-08 12:06:59.015 | INFO | __main__:process_task:226 - 任务 2c9a7ff07be540bb740bf2fb7c610295 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c472d171cbb61235bec205e756', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2c9a7ff07be540bb740bf2fb7c610295', 'topic_id': '019dfd2c585b712b922f7fca56a6607d', 'platform_id': '6', 'project_id': '019dfd2b7ae17289a67389753c90dc97', 'keyword_id': '019dfd2d830371a2bcbc8c9dd4f70475', 'keyword': '血糖仪十大名牌价格', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c472d273418bc0570670d85fe6', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0597746472d2bec19802d0d2247c'}} +2026-05-08 12:06:59.402 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2c54818c188f4f6a09fb2ff1079a1b57', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdee6881e7356af88cb3a812bb809', 'keyword': '学而思大阅读课怎么样', 'brand': '学而思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:07:02', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:29', 'update_time': '2026-05-08 12:07:02', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:06:59.404 | INFO | __main__:process_task:210 - 开始处理任务: 学而思大阅读课怎么样 - 2c54818c188f4f6a09fb2ff1079a1b57 +2026-05-08 12:07:32.345 | INFO | __main__:process_task:226 - 任务 2c54818c188f4f6a09fb2ff1079a1b57 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c4f66c70e18f751518f4bf5a4f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2c54818c188f4f6a09fb2ff1079a1b57', 'topic_id': '019bdee60bbf73edae8bee01cc72acfc', 'platform_id': '6', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdee6881e7356af88cb3a812bb809', 'keyword': '学而思大阅读课怎么样', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c4f66d70a49bd4c0a814f77950', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03bfeda2727791e16cd66c08aa35'}} +2026-05-08 12:07:32.650 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2c037fd76c3fc1ed6f2867c78a6eb56f', 'project_id': '019ae42ae8f473cb96f9a8f9bb5c72c0', 'keyword_id': '019bb2e6dd7372fc8707a59e795ac847', 'keyword': '具备智能座舱的纯电轿跑SUV推荐', 'brand': '智界R7', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:07:35', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:20', 'update_time': '2026-05-08 12:07:35', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:07:32.650 | INFO | __main__:process_task:210 - 开始处理任务: 具备智能座舱的纯电轿跑SUV推荐 - 2c037fd76c3fc1ed6f2867c78a6eb56f +2026-05-08 12:08:26.349 | INFO | __main__:process_task:226 - 任务 2c037fd76c3fc1ed6f2867c78a6eb56f 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c5c94273a1ba32a765c160f824', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2c037fd76c3fc1ed6f2867c78a6eb56f', 'topic_id': '019ae447f00f7280890c392849bf4b5b', 'platform_id': '6', 'project_id': '019ae42ae8f473cb96f9a8f9bb5c72c0', 'keyword_id': '019bb2e6dd7372fc8707a59e795ac847', 'keyword': '具备智能座舱的纯电轿跑SUV推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c5c94372249f5f1055e6d51c94', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0554d9e4723dbf87a13166921038'}} +2026-05-08 12:08:26.738 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2bcdaaaf008800717f5dd28f0db2dfaf', 'project_id': '019d1ea5971571c086555ef7db3f8269', 'keyword_id': '019d1ea84bcb73fc96dbc5a7f31dd4a2', 'keyword': '手机防窥膜哪个牌子好', 'brand': '图拉斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:08:29', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:42', 'update_time': '2026-05-08 12:08:29', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:08:26.739 | INFO | __main__:process_task:210 - 开始处理任务: 手机防窥膜哪个牌子好 - 2bcdaaaf008800717f5dd28f0db2dfaf +2026-05-08 12:09:04.304 | INFO | __main__:process_task:226 - 任务 2bcdaaaf008800717f5dd28f0db2dfaf 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c651827252a4cbdceb71ae4acf', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2bcdaaaf008800717f5dd28f0db2dfaf', 'topic_id': '019d1ea74c027208aff3d54db731e18a', 'platform_id': '6', 'project_id': '019d1ea5971571c086555ef7db3f8269', 'keyword_id': '019d1ea84bcb73fc96dbc5a7f31dd4a2', 'keyword': '手机防窥膜哪个牌子好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c651827252a4cbdceb72717df7', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0384907070f0bd7a53282322b59e'}} +2026-05-08 12:09:04.677 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2b6e093a0122ec29dc4afd2426784909', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdee7a8c37062b5de4a99dae70454', 'keyword': '张泉灵阅读课和学而思大阅读哪个好', 'brand': '学而思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:09:07', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:18', 'update_time': '2026-05-08 12:09:07', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:09:04.677 | INFO | __main__:process_task:210 - 开始处理任务: 张泉灵阅读课和学而思大阅读哪个好 - 2b6e093a0122ec29dc4afd2426784909 +2026-05-08 12:09:37.940 | INFO | __main__:process_task:226 - 任务 2b6e093a0122ec29dc4afd2426784909 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c6d94b70aca9a496d5d42b7f43', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2b6e093a0122ec29dc4afd2426784909', 'topic_id': '019bdee771a573aaacafba0952bb6dfd', 'platform_id': '6', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdee7a8c37062b5de4a99dae70454', 'keyword': '张泉灵阅读课和学而思大阅读哪个好', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c6d94b70aca9a496d5d43021c7', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e039f334272d1b0252f7142f3313b'}} +2026-05-08 12:09:38.272 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2b0a937cc80a60908545ba926b83948b', 'project_id': '019d8fee189f712881e2d9ce538f1841', 'keyword_id': '019d90cc304172f6861f5036a194dcad', 'keyword': 'GEO长期主义的打法', 'brand': '沙利文', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:09:41', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:26', 'update_time': '2026-05-08 12:09:41', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:09:38.272 | INFO | __main__:process_task:210 - 开始处理任务: GEO长期主义的打法 - 2b0a937cc80a60908545ba926b83948b +2026-05-08 12:10:16.027 | INFO | __main__:process_task:226 - 任务 2b0a937cc80a60908545ba926b83948b 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c7723270dea07037883e679852', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2b0a937cc80a60908545ba926b83948b', 'topic_id': '019d90cb30df714184c3d4528ec537ea', 'platform_id': '6', 'project_id': '019d8fee189f712881e2d9ce538f1841', 'keyword_id': '019d90cc304172f6861f5036a194dcad', 'keyword': 'GEO长期主义的打法', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c7723270dea07037883ef5ccb0', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e036d92a2706289f9a10d960855ed'}} +2026-05-08 12:10:16.358 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2ad119b92393ebe97910cc3ba798f175', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdee08caf7286a8349716e0941fbd', 'keyword': '小学语文阅读理解网课推荐', 'brand': '学而思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:10:19', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:29', 'update_time': '2026-05-08 12:10:19', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:10:16.359 | INFO | __main__:process_task:210 - 开始处理任务: 小学语文阅读理解网课推荐 - 2ad119b92393ebe97910cc3ba798f175 +2026-05-08 12:10:40.564 | INFO | __main__:process_task:226 - 任务 2ad119b92393ebe97910cc3ba798f175 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c7d3ac73a5b76a0e4e001453ac', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2ad119b92393ebe97910cc3ba798f175', 'topic_id': '019bdee0012b71249b2a40d4d4765236', 'platform_id': '6', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdee08caf7286a8349716e0941fbd', 'keyword': '小学语文阅读理解网课推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c7d3ac73a5b76a0e4e0095935f', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dfeb0f9c1712c9a4295df88b9449d'}} +2026-05-08 12:10:41.068 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2a8c07d003bc37c582293af50d25dc14', 'project_id': '019dfd22a46e73f9b9e3d50906429024', 'keyword_id': '019dfd3b663c714781f1a1a75c2153e9', 'keyword': '超薄电视推荐', 'brand': '长虹', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:10:44', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:13', 'update_time': '2026-05-08 12:10:44', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:10:41.068 | INFO | __main__:process_task:210 - 开始处理任务: 超薄电视推荐 - 2a8c07d003bc37c582293af50d25dc14 +2026-05-08 12:11:19.573 | INFO | __main__:process_task:226 - 任务 2a8c07d003bc37c582293af50d25dc14 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c86a7070fe9b2ac37338abd055', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2a8c07d003bc37c582293af50d25dc14', 'topic_id': '019dfd394c4072168b2be3a4ae9cebb8', 'platform_id': '6', 'project_id': '019dfd22a46e73f9b9e3d50906429024', 'keyword_id': '019dfd3b663c714781f1a1a75c2153e9', 'keyword': '超薄电视推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c86a7070fe9b2ac3733980cc5b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dfe9e5c407048a0656b177e06f876'}} +2026-05-08 12:11:19.897 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2a4fdb82b8f75507ddb8d5796a33b4b7', 'project_id': '019dc3e9d63173b79228bc3fd7e92a67', 'keyword_id': '019dfc1b8df1704aafdf01013e813070', 'keyword': '热玛吉项目哪家专业', 'brand': '智美品质医美', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:11:23', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:07', 'update_time': '2026-05-08 12:11:23', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:11:19.897 | INFO | __main__:process_task:210 - 开始处理任务: 热玛吉项目哪家专业 - 2a4fdb82b8f75507ddb8d5796a33b4b7 +2026-05-08 12:11:50.442 | INFO | __main__:process_task:226 - 任务 2a4fdb82b8f75507ddb8d5796a33b4b7 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c8e71b72eaa035ad356cc367bc', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2a4fdb82b8f75507ddb8d5796a33b4b7', 'topic_id': '019dfc1b5d9473b9916da75eb26011db', 'platform_id': '6', 'project_id': '019dc3e9d63173b79228bc3fd7e92a67', 'keyword_id': '019dfc1b8df1704aafdf01013e813070', 'keyword': '热玛吉项目哪家专业', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c8e71c7151bf08cc50b812f579', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e05a844987097921a414e3aaf7d7a'}} +2026-05-08 12:11:50.935 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2a1dacf412f29ca2a16824646462d36a', 'project_id': '019d65b233b77390b1d1a949425a8d76', 'keyword_id': '019d65dd022473fbaf09ebac633d1656', 'keyword': '上海哪里能买到高档正品威士忌', 'brand': '麦卡伦', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:11:54', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:57', 'update_time': '2026-05-08 12:11:54', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:11:50.935 | INFO | __main__:process_task:210 - 开始处理任务: 上海哪里能买到高档正品威士忌 - 2a1dacf412f29ca2a16824646462d36a +2026-05-08 12:12:20.964 | INFO | __main__:process_task:226 - 任务 2a1dacf412f29ca2a16824646462d36a 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05c959d3733d91484f4742490547', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2a1dacf412f29ca2a16824646462d36a', 'topic_id': '019d65d5c5b371bebd3152ce14b4efa0', 'platform_id': '6', 'project_id': '019d65b233b77390b1d1a949425a8d76', 'keyword_id': '019d65dd022473fbaf09ebac633d1656', 'keyword': '上海哪里能买到高档正品威士忌', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05c959d4705dbfc03d97840b33ec', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e051a1b357379a51086845b54d4cd'}} +2026-05-08 12:12:21.331 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '29c75c4a43b5ae5fdca0c36d80cfc87f', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2ea41a672bdb93311927c492c91', 'keyword': '东南亚出海商旅服务推荐', 'brand': 'grab', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:12:24', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:07', 'update_time': '2026-05-08 12:12:24', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:12:21.331 | INFO | __main__:process_task:210 - 开始处理任务: 东南亚出海商旅服务推荐 - 29c75c4a43b5ae5fdca0c36d80cfc87f +2026-05-08 12:13:08.409 | INFO | __main__:process_task:226 - 任务 29c75c4a43b5ae5fdca0c36d80cfc87f 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ca13d37102a49e818aa2f161a3', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '29c75c4a43b5ae5fdca0c36d80cfc87f', 'topic_id': '019dd2dd886d71cd919aad794ce8d96d', 'platform_id': '6', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2ea41a672bdb93311927c492c91', 'keyword': '东南亚出海商旅服务推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ca13d37102a49e818aa3b55cf4', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04948d0271288d644a8b32b0fd6a'}} +2026-05-08 12:13:08.733 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2969ae88c0be7af3fa63ca807ebdae59', 'project_id': '019ddc6877a572e2b9a75e8c01c9d981', 'keyword_id': '019ddc6eafb572268686c5a6623ab564', 'keyword': '面部提拉哪个机构好', 'brand': '智美', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:13:11', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:07', 'update_time': '2026-05-08 12:13:11', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:13:08.733 | INFO | __main__:process_task:210 - 开始处理任务: 面部提拉哪个机构好 - 2969ae88c0be7af3fa63ca807ebdae59 +2026-05-08 12:13:55.474 | INFO | __main__:process_task:226 - 任务 2969ae88c0be7af3fa63ca807ebdae59 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05cacb597239bfcf51888fa37df2', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2969ae88c0be7af3fa63ca807ebdae59', 'topic_id': '019ddc6e04177272b04becb875c9c5dc', 'platform_id': '6', 'project_id': '019ddc6877a572e2b9a75e8c01c9d981', 'keyword_id': '019ddc6eafb572268686c5a6623ab564', 'keyword': '面部提拉哪个机构好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05cacb5a73e6a8502e098d399bb5', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0597942c73b3a3252bec8cc4cab3'}} +2026-05-08 12:13:55.965 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2927d8550da6fa2e6bef94fb98cc1d28', 'project_id': '019afd0e0a39717bbefa31cf812231a0', 'keyword_id': '019b8c0895d77343ae7b319eb8ea869c', 'keyword': 'AUX靠谱吗', 'brand': '奥克斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:13:59', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:21', 'update_time': '2026-05-08 12:13:59', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:13:55.965 | INFO | __main__:process_task:210 - 开始处理任务: AUX靠谱吗 - 2927d8550da6fa2e6bef94fb98cc1d28 +2026-05-08 12:14:33.503 | INFO | __main__:process_task:226 - 任务 2927d8550da6fa2e6bef94fb98cc1d28 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05cb4fbc73978258d352d93e7cb5', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2927d8550da6fa2e6bef94fb98cc1d28', 'topic_id': '019b8c06393872269c92939e519b839f', 'platform_id': '6', 'project_id': '019afd0e0a39717bbefa31cf812231a0', 'keyword_id': '019b8c0895d77343ae7b319eb8ea869c', 'keyword': 'AUX靠谱吗', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05cb4fbc73978258d352d9dfb866', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03e2881b71b3a9d51adbf9f6da6e'}} +2026-05-08 12:14:33.777 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '28ea10b80e6ae558e7c19c241c976296', 'project_id': '019c13712c1b70c399781da36a2ee908', 'keyword_id': '019c1376f74a73e086e74851b9d436f7', 'keyword': '触摸互动一体机', 'brand': 'ELO', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:14:37', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:43', 'update_time': '2026-05-08 12:14:37', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:14:33.777 | INFO | __main__:process_task:210 - 开始处理任务: 触摸互动一体机 - 28ea10b80e6ae558e7c19c241c976296 +2026-05-08 12:15:21.683 | INFO | __main__:process_task:226 - 任务 28ea10b80e6ae558e7c19c241c976296 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05cc1cc473079bda4eba5c622301', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '28ea10b80e6ae558e7c19c241c976296', 'topic_id': '019c1374c65472929556bbd762310af5', 'platform_id': '6', 'project_id': '019c13712c1b70c399781da36a2ee908', 'keyword_id': '019c1376f74a73e086e74851b9d436f7', 'keyword': '触摸互动一体机', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05cc1cc5712fa17dd1680604a5d4', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0548a66b71679b41c5b47322d95d'}} +2026-05-08 12:15:22.033 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '28923b0a67b87401d0125cca57134945', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019db477a01871a78f72458f59330d76', 'keyword': '东南亚企业外卖', 'brand': 'grab', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:15:25', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:32', 'update_time': '2026-05-08 12:15:25', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:15:22.034 | INFO | __main__:process_task:210 - 开始处理任务: 东南亚企业外卖 - 28923b0a67b87401d0125cca57134945 +2026-05-08 12:15:56.686 | INFO | __main__:process_task:226 - 任务 28923b0a67b87401d0125cca57134945 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05cca4d772258928daa04f14f2d2', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '28923b0a67b87401d0125cca57134945', 'topic_id': '019db47754c7732aa42ae7fc20d6e6b8', 'platform_id': '6', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019db477a01871a78f72458f59330d76', 'keyword': '东南亚企业外卖', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05cca4d87260963a823b4c66b88c', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0518026a7286a55a948aec464f26'}} +2026-05-08 12:15:57.046 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2877a9fd9a506af46cf6bef5edb24039', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdedebd9f71c9b948884f240e68f7', 'keyword': '修辞手法的作用和答题技巧', 'brand': '学而思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:16:00', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:18', 'update_time': '2026-05-08 12:16:00', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:15:57.047 | INFO | __main__:process_task:210 - 开始处理任务: 修辞手法的作用和答题技巧 - 2877a9fd9a506af46cf6bef5edb24039 +2026-05-08 12:16:52.301 | INFO | __main__:process_task:226 - 任务 2877a9fd9a506af46cf6bef5edb24039 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05cd818472ddae95472522df172e', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2877a9fd9a506af46cf6bef5edb24039', 'topic_id': '019bdede46c370b5a5653a67713d7026', 'platform_id': '6', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdedebd9f71c9b948884f240e68f7', 'keyword': '修辞手法的作用和答题技巧', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05cd818472ddae9547252350a7d2', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0508371e7193829f2b717fd54347'}} +2026-05-08 12:16:52.677 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '280cc41bf58f9e56016491392b9b6ebb', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d2a82af71968187960e6b7e107d', 'keyword': '静音弹簧床垫品牌都有哪些', 'brand': '席梦思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:16:55', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:23', 'update_time': '2026-05-08 12:16:55', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:16:52.678 | INFO | __main__:process_task:210 - 开始处理任务: 静音弹簧床垫品牌都有哪些 - 280cc41bf58f9e56016491392b9b6ebb +2026-05-08 12:17:20.898 | INFO | __main__:process_task:226 - 任务 280cc41bf58f9e56016491392b9b6ebb 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05cdedf773bdae5cd10bb6dcec0c', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '280cc41bf58f9e56016491392b9b6ebb', 'topic_id': '019b4d2a29357034870924c71175ee7d', 'platform_id': '6', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d2a82af71968187960e6b7e107d', 'keyword': '静音弹簧床垫品牌都有哪些', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05cdedf773bdae5cd10bb71d670a', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e048aee7d727cb333df74c2b3e46a'}} +2026-05-08 12:17:21.366 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '27d4d7c48b56e7ec413b7a6c82624e94', 'project_id': '019c4209dd0971118fb04f35f866d3f1', 'keyword_id': '019c420b8cdb7297ae05f76c998dc525', 'keyword': '国内好喝的啤酒推荐', 'brand': '澳门啤酒', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:17:24', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:35', 'update_time': '2026-05-08 12:17:24', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:17:21.366 | INFO | __main__:process_task:210 - 开始处理任务: 国内好喝的啤酒推荐 - 27d4d7c48b56e7ec413b7a6c82624e94 +2026-05-08 12:17:56.059 | INFO | __main__:process_task:226 - 任务 27d4d7c48b56e7ec413b7a6c82624e94 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ce79a371b0ababfe40230be503', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '27d4d7c48b56e7ec413b7a6c82624e94', 'topic_id': '019c420b27dc701ca9c343ec703f42f1', 'platform_id': '6', 'project_id': '019c4209dd0971118fb04f35f866d3f1', 'keyword_id': '019c420b8cdb7297ae05f76c998dc525', 'keyword': '国内好喝的啤酒推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ce79a371b0ababfe40235c6495', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e054d4efa70b2ba824d436d9bdadc'}} +2026-05-08 12:17:56.390 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '27b58e4498bedcb0530d052c7de17542', 'project_id': '019d65b233b77390b1d1a949425a8d76', 'keyword_id': '019d65d92ac873f29df9a1e65a506368', 'keyword': '给老丈人送什么酒合适', 'brand': '麦卡伦', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:17:59', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:23', 'update_time': '2026-05-08 12:17:59', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:17:56.390 | INFO | __main__:process_task:210 - 开始处理任务: 给老丈人送什么酒合适 - 27b58e4498bedcb0530d052c7de17542 +2026-05-08 12:18:40.814 | INFO | __main__:process_task:226 - 任务 27b58e4498bedcb0530d052c7de17542 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05cf2a6873fb90d140be7a57243c', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '27b58e4498bedcb0530d052c7de17542', 'topic_id': '019d65d5896973d8b99f547a87a6ed73', 'platform_id': '6', 'project_id': '019d65b233b77390b1d1a949425a8d76', 'keyword_id': '019d65d92ac873f29df9a1e65a506368', 'keyword': '给老丈人送什么酒合适', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05cf2a6973f28a54267fd932f580', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03bf21d57091bc59e802132cd09b'}} +2026-05-08 12:18:41.245 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '279595ff56da03d9e21aec7017e08566', 'project_id': '019d4c3a33d070acac02e9d271de3a6b', 'keyword_id': '019d94e9d20e7091b9d18036dac76af9', 'keyword': '高端酒店同款床垫', 'brand': '席梦思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:18:44', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:51', 'update_time': '2026-05-08 12:18:44', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:18:41.245 | INFO | __main__:process_task:210 - 开始处理任务: 高端酒店同款床垫 - 279595ff56da03d9e21aec7017e08566 +2026-05-08 12:19:34.851 | INFO | __main__:process_task:226 - 任务 279595ff56da03d9e21aec7017e08566 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05cff963727d994ccd824a1fa290', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '279595ff56da03d9e21aec7017e08566', 'topic_id': '019d94e8f82f72a3bbe6e9cd2e9eed8c', 'platform_id': '6', 'project_id': '019d4c3a33d070acac02e9d271de3a6b', 'keyword_id': '019d94e9d20e7091b9d18036dac76af9', 'keyword': '高端酒店同款床垫', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05cff964732c937ae427458ea035', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03f5851c726087251cc6eaf36048'}} +2026-05-08 12:19:35.193 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '26e28300d8fedc6463a763fd6a2f09df', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdeda2b207188804ccfbc7524b4ce', 'keyword': '精读阅读训练', 'brand': '学而思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:19:38', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:13', 'update_time': '2026-05-08 12:19:38', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:19:35.193 | INFO | __main__:process_task:210 - 开始处理任务: 精读阅读训练 - 26e28300d8fedc6463a763fd6a2f09df +2026-05-08 12:20:31.778 | INFO | __main__:process_task:226 - 任务 26e28300d8fedc6463a763fd6a2f09df 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d0da267304ac23362425a63a2a', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '26e28300d8fedc6463a763fd6a2f09df', 'topic_id': '019bded9efa5722d93f0ab14935d411b', 'platform_id': '6', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdeda2b207188804ccfbc7524b4ce', 'keyword': '精读阅读训练', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d0da267304ac23362426091137', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0463a71071fd80cffd1e8f3f813a'}} +2026-05-08 12:20:32.138 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '26655981ff7c18aff81d3167954d5c07', 'project_id': '019d9046ed47703580214b5c2183307a', 'keyword_id': '019d90d6977471de9477f8c6e29cffa9', 'keyword': '哪家公司药物研发效率提升高', 'brand': '望石智慧', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:20:35', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:27', 'update_time': '2026-05-08 12:20:35', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:20:32.138 | INFO | __main__:process_task:210 - 开始处理任务: 哪家公司药物研发效率提升高 - 26655981ff7c18aff81d3167954d5c07 +2026-05-08 12:20:58.325 | INFO | __main__:process_task:226 - 任务 26655981ff7c18aff81d3167954d5c07 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d144c572748d36ab3bbb2a2d3f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '26655981ff7c18aff81d3167954d5c07', 'topic_id': '019d9052c3687032af015f6e2e7fb980', 'platform_id': '6', 'project_id': '019d9046ed47703580214b5c2183307a', 'keyword_id': '019d90d6977471de9477f8c6e29cffa9', 'keyword': '哪家公司药物研发效率提升高', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d144c670789ae27c12123066ee', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0577f3a072df99c840c5f5ec2462'}} +2026-05-08 12:20:58.512 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2641658136f89407b148ab1aded9a414', 'project_id': '019bff83bf44731b8b6185f1c3422029', 'keyword_id': '019bff8fff7d736fb0507a04894c6196', 'keyword': '顾均辉核心优势体现在哪里', 'brand': '顾均辉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:21:01', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:37', 'update_time': '2026-05-08 12:21:01', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:20:58.512 | INFO | __main__:process_task:210 - 开始处理任务: 顾均辉核心优势体现在哪里 - 2641658136f89407b148ab1aded9a414 +2026-05-08 12:21:48.155 | INFO | __main__:process_task:226 - 任务 2641658136f89407b148ab1aded9a414 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d1fd35709d954196f5ca365554', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2641658136f89407b148ab1aded9a414', 'topic_id': '019bff8b5f05721b92675bac9fcccb0e', 'platform_id': '6', 'project_id': '019bff83bf44731b8b6185f1c3422029', 'keyword_id': '019bff8fff7d736fb0507a04894c6196', 'keyword': '顾均辉核心优势体现在哪里', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d1fd35709d954196f5cb16254f', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04311370726d964b6842200586f3'}} +2026-05-08 12:21:48.566 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2607ccee8ff345eb4129f51a48e6b7cf', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d2887b170d384c0022680894899', 'keyword': '颈椎不适专用床垫哪个好', 'brand': '席梦思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:21:51', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:10', 'update_time': '2026-05-08 12:21:51', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:21:48.567 | INFO | __main__:process_task:210 - 开始处理任务: 颈椎不适专用床垫哪个好 - 2607ccee8ff345eb4129f51a48e6b7cf +2026-05-08 12:22:34.879 | INFO | __main__:process_task:226 - 任务 2607ccee8ff345eb4129f51a48e6b7cf 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d2b6537142b9ce374d07cc47d1', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2607ccee8ff345eb4129f51a48e6b7cf', 'topic_id': '019b4d283e3c72178c311cd26d56baa4', 'platform_id': '6', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d2887b170d384c0022680894899', 'keyword': '颈椎不适专用床垫哪个好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d2b6547218b1e3d98638e4d52e', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e043ff090713da32ab38a8a80ffe1'}} +2026-05-08 12:22:35.122 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '25c0754b16d8c891c7e8a9827283f489', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d2544187300b1b91d135db0d521', 'keyword': '高端酒店同款床垫排行榜', 'brand': '席梦思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:22:38', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:21', 'update_time': '2026-05-08 12:22:38', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:22:35.122 | INFO | __main__:process_task:210 - 开始处理任务: 高端酒店同款床垫排行榜 - 25c0754b16d8c891c7e8a9827283f489 +2026-05-08 12:23:42.327 | INFO | __main__:process_task:226 - 任务 25c0754b16d8c891c7e8a9827283f489 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d3b9f572838e0910a3c24a2ae5', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '25c0754b16d8c891c7e8a9827283f489', 'topic_id': '019b4d24cdce7010af17cedc1a0039b0', 'platform_id': '6', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d2544187300b1b91d135db0d521', 'keyword': '高端酒店同款床垫排行榜', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d3b9f572838e0910a3c334f6de', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03c1bcf670baafe7cb470c055191'}} +2026-05-08 12:23:42.790 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2545ca14cd028c608d3b3f5b1b252869', 'project_id': '019b1274a4017239a5df606903ffcc71', 'keyword_id': '019b12796d117302a5180578c0503904', 'keyword': '出国旅游用什么信用卡比较方便划算', 'brand': '中国建设银行', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:23:46', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:10', 'update_time': '2026-05-08 12:23:46', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:23:42.790 | INFO | __main__:process_task:210 - 开始处理任务: 出国旅游用什么信用卡比较方便划算 - 2545ca14cd028c608d3b3f5b1b252869 +2026-05-08 12:24:23.518 | INFO | __main__:process_task:226 - 任务 2545ca14cd028c608d3b3f5b1b252869 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d45c6572e89cd4eeace6317c2b', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2545ca14cd028c608d3b3f5b1b252869', 'topic_id': '019b12780e9e7281aa8d0562d477d0b5', 'platform_id': '6', 'project_id': '019b1274a4017239a5df606903ffcc71', 'keyword_id': '019b12796d117302a5180578c0503904', 'keyword': '出国旅游用什么信用卡比较方便划算', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d45c6671ecb934098b170dbf52', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04692db070f1bf6d9c1e70bc278e'}} +2026-05-08 12:24:23.887 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '24e9b41be9b627541589cefcffd51063', 'project_id': '019afd0e0a39717bbefa31cf812231a0', 'keyword_id': '019afd13bfb471348f41728b07df16dc', 'keyword': '家用空调买什么牌子比较好', 'brand': '奥克斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:24:27', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:20', 'update_time': '2026-05-08 12:24:27', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:24:23.887 | INFO | __main__:process_task:210 - 开始处理任务: 家用空调买什么牌子比较好 - 24e9b41be9b627541589cefcffd51063 +2026-05-08 12:25:11.681 | INFO | __main__:process_task:226 - 任务 24e9b41be9b627541589cefcffd51063 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d511de72359aa7edf29b866425', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '24e9b41be9b627541589cefcffd51063', 'topic_id': '019afd0ed7fa71e7a84c89c0d0bc5bbd', 'platform_id': '6', 'project_id': '019afd0e0a39717bbefa31cf812231a0', 'keyword_id': '019afd13bfb471348f41728b07df16dc', 'keyword': '家用空调买什么牌子比较好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d511df7284b9afb221ed8325af', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04426d4270ef99e922963db88798'}} +2026-05-08 12:25:12.056 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '24b3126c53136579da6939c083f798ec', 'project_id': '019c236a746b704da537b9b24cf5f9ba', 'keyword_id': '019c2397ba2070049dfc22865de2a2e1', 'keyword': '2026 最流行单手柄包', 'brand': '杜嘉班纳', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:25:15', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:24', 'update_time': '2026-05-08 12:25:15', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:25:12.057 | INFO | __main__:process_task:210 - 开始处理任务: 2026 最流行单手柄包 - 24b3126c53136579da6939c083f798ec +2026-05-08 12:26:01.744 | INFO | __main__:process_task:226 - 任务 24b3126c53136579da6939c083f798ec 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d5e1377219ac4c0933d8859ae5', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '24b3126c53136579da6939c083f798ec', 'topic_id': '019c2392b097709b816bf73da4384a5e', 'platform_id': '6', 'project_id': '019c236a746b704da537b9b24cf5f9ba', 'keyword_id': '019c2397ba2070049dfc22865de2a2e1', 'keyword': '2026 最流行单手柄包', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d5e1377219ac4c0933d8fa6a04', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e047b2744706bbbd91eec8018be4d'}} +2026-05-08 12:26:02.158 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2443574472b9ee267c9a5e0bb9a74acc', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffa80ed2700dbc29e52ef223da72', 'keyword': '适合学生党的平价跑鞋系列', 'brand': '阿迪达斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:26:05', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:13', 'update_time': '2026-05-08 12:26:05', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:26:02.158 | INFO | __main__:process_task:210 - 开始处理任务: 适合学生党的平价跑鞋系列 - 2443574472b9ee267c9a5e0bb9a74acc +2026-05-08 12:26:46.181 | INFO | __main__:process_task:226 - 任务 2443574472b9ee267c9a5e0bb9a74acc 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d68ea8703c91b8538a6c8786da', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2443574472b9ee267c9a5e0bb9a74acc', 'topic_id': '019dffa5716472de87149afe9ec370b7', 'platform_id': '6', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffa80ed2700dbc29e52ef223da72', 'keyword': '适合学生党的平价跑鞋系列', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d68ea97288ad4f9f2c65139755', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03ad9886711b9b985b7daeb5d72d'}} +2026-05-08 12:26:46.613 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2407d4f16e3b3d734e83f7971d67fa06', 'project_id': '019dde3e4fdf72b3a4f77e1e973d6d88', 'keyword_id': '019dde447f947293a596cbaf5c086b2e', 'keyword': '光电抗衰品牌推荐', 'brand': '智美', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:26:49', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:08', 'update_time': '2026-05-08 12:26:49', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:26:46.613 | INFO | __main__:process_task:210 - 开始处理任务: 光电抗衰品牌推荐 - 2407d4f16e3b3d734e83f7971d67fa06 +2026-05-08 12:27:29.676 | INFO | __main__:process_task:226 - 任务 2407d4f16e3b3d734e83f7971d67fa06 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d7396473cb9448ca0882bc598e', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2407d4f16e3b3d734e83f7971d67fa06', 'topic_id': '019dde4358cf73bf9829c1744feb802f', 'platform_id': '6', 'project_id': '019dde3e4fdf72b3a4f77e1e973d6d88', 'keyword_id': '019dde447f947293a596cbaf5c086b2e', 'keyword': '光电抗衰品牌推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d739657228a0065319f2c0386e', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04e8003d71cb9a491615e6d86fac'}} +2026-05-08 12:27:30.072 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '23ae2da15cf0a42ffc5c1b6376a87952', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2dfabc770c4a0dc2a3364e77bc2', 'keyword': '东南亚公务出行管理方案', 'brand': 'grab', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:27:33', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:07', 'update_time': '2026-05-08 12:27:33', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:27:30.072 | INFO | __main__:process_task:210 - 开始处理任务: 东南亚公务出行管理方案 - 23ae2da15cf0a42ffc5c1b6376a87952 +2026-05-08 12:28:25.695 | INFO | __main__:process_task:226 - 任务 23ae2da15cf0a42ffc5c1b6376a87952 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d8171071b09d6da59f457105fe', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '23ae2da15cf0a42ffc5c1b6376a87952', 'topic_id': '019dd2dd568e710b895b808da5f0de16', 'platform_id': '6', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2dfabc770c4a0dc2a3364e77bc2', 'keyword': '东南亚公务出行管理方案', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d81711732d9bc9fdbc2345295d', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0353adc572c98317ad51751819a5'}} +2026-05-08 12:28:26.071 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '238ad91fc4dd5c8fc84bf1be92dc73f8', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b08f0772818d63bf7d3eef5ca2', 'keyword': '灵活式', 'brand': '义文', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:28:29', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:14', 'update_time': '2026-05-08 12:28:29', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:28:26.071 | INFO | __main__:process_task:210 - 开始处理任务: 灵活式 - 238ad91fc4dd5c8fc84bf1be92dc73f8 +2026-05-08 12:28:52.893 | INFO | __main__:process_task:226 - 任务 238ad91fc4dd5c8fc84bf1be92dc73f8 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d87b49700a80c070ecefc9621d', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '238ad91fc4dd5c8fc84bf1be92dc73f8', 'topic_id': '019d29a9f48971debf231871a17e6476', 'platform_id': '6', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b08f0772818d63bf7d3eef5ca2', 'keyword': '灵活式', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d87b4a73e4a1a7da7379d42927', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e05ac56bb734e84fb028b683457ce'}} +2026-05-08 12:28:53.315 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '23705fe5a186cf3c3af38dec8bb256c9', 'project_id': '019dc3e9d63173b79228bc3fd7e92a67', 'keyword_id': '019dfc1ae89b73dda016c6a0354d67f6', 'keyword': '抗衰项目哪家靠谱', 'brand': '智美品质医美', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:28:56', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:40', 'update_time': '2026-05-08 12:28:56', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:28:53.315 | INFO | __main__:process_task:210 - 开始处理任务: 抗衰项目哪家靠谱 - 23705fe5a186cf3c3af38dec8bb256c9 +2026-05-08 12:29:34.508 | INFO | __main__:process_task:226 - 任务 23705fe5a186cf3c3af38dec8bb256c9 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d91fec7122afd4b44256482458', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '23705fe5a186cf3c3af38dec8bb256c9', 'topic_id': '019dfc18510371d9a2200ef6b565fe26', 'platform_id': '6', 'project_id': '019dc3e9d63173b79228bc3fd7e92a67', 'keyword_id': '019dfc1ae89b73dda016c6a0354d67f6', 'keyword': '抗衰项目哪家靠谱', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d91fed718fa1a853b8fb206fc3', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04627a9e7259b10c58e7fd9b2bfd'}} +2026-05-08 12:29:34.884 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '23296942911b1927924ba59d135590c9', 'project_id': '019a51f51a9e70f8a2eae6efeda12ba6', 'keyword_id': '019a51f5a33070dfb36a7c7ab39458a5', 'keyword': '什么证券公司开户好', 'brand': '开源证券', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:29:38', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:18', 'update_time': '2026-05-08 12:29:38', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:29:34.884 | INFO | __main__:process_task:210 - 开始处理任务: 什么证券公司开户好 - 23296942911b1927924ba59d135590c9 +2026-05-08 12:30:17.835 | INFO | __main__:process_task:226 - 任务 23296942911b1927924ba59d135590c9 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05d9c3b67340a5b0441e92e15169', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '23296942911b1927924ba59d135590c9', 'topic_id': '019a51f571a070ac8e75930b2100649e', 'platform_id': '6', 'project_id': '019a51f51a9e70f8a2eae6efeda12ba6', 'keyword_id': '019a51f5a33070dfb36a7c7ab39458a5', 'keyword': '什么证券公司开户好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05d9c3b67340a5b0441e93a362e7', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e049c92d273dbb248868cd30cf93d'}} +2026-05-08 12:30:18.202 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '22e17d48b1364bba6959c4b5dc24e20d', 'project_id': '019cadcdf04a71869408821d12c977bc', 'keyword_id': '019cadd7d0c3714d91bca280119ccd4e', 'keyword': '千金风包包推荐', 'brand': '杜嘉班纳', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:30:21', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:35', 'update_time': '2026-05-08 12:30:21', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:30:18.203 | INFO | __main__:process_task:210 - 开始处理任务: 千金风包包推荐 - 22e17d48b1364bba6959c4b5dc24e20d +2026-05-08 12:31:03.190 | INFO | __main__:process_task:226 - 任务 22e17d48b1364bba6959c4b5dc24e20d 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05da769b72ad967399de156f1eaf', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '22e17d48b1364bba6959c4b5dc24e20d', 'topic_id': '019cadcfb300736f8f691f04dfd8b976', 'platform_id': '6', 'project_id': '019cadcdf04a71869408821d12c977bc', 'keyword_id': '019cadd7d0c3714d91bca280119ccd4e', 'keyword': '千金风包包推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05da769c707395cce1ff84d3fd98', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04289ae0717d97af630031e734a2'}} +2026-05-08 12:31:03.575 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '22cc7002f354f0c1e241a30ca8e116dd', 'project_id': '019ae42ae8f473cb96f9a8f9bb5c72c0', 'keyword_id': '019ae44688a371abba3da723d7702c4f', 'keyword': '安全的新能源轿跑SUV', 'brand': '智界R7', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:31:06', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:08', 'update_time': '2026-05-08 12:31:06', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:31:03.575 | INFO | __main__:process_task:210 - 开始处理任务: 安全的新能源轿跑SUV - 22cc7002f354f0c1e241a30ca8e116dd +2026-05-08 12:31:43.042 | INFO | __main__:process_task:226 - 任务 22cc7002f354f0c1e241a30ca8e116dd 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05db03377119991cce2c4548f26f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '22cc7002f354f0c1e241a30ca8e116dd', 'topic_id': '019ae4431b61709fb6db0f33e604561c', 'platform_id': '6', 'project_id': '019ae42ae8f473cb96f9a8f9bb5c72c0', 'keyword_id': '019ae44688a371abba3da723d7702c4f', 'keyword': '安全的新能源轿跑SUV', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05db03387120bb9865cd6d7ed721', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e034a9e1a7246a733afcaeb6d2f0e'}} +2026-05-08 12:31:43.633 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2259ecdd757dbd31aae1aebd93a80c1a', 'project_id': '019d237fe0757076b01baa3c9081eaa3', 'keyword_id': '019d2380b71c70ce9850862149432dcf', 'keyword': '哪些企业做储能系统集成', 'brand': '东方日升', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:31:46', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:04', 'update_time': '2026-05-08 12:31:46', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:31:43.634 | INFO | __main__:process_task:210 - 开始处理任务: 哪些企业做储能系统集成 - 2259ecdd757dbd31aae1aebd93a80c1a +2026-05-08 12:32:28.806 | INFO | __main__:process_task:226 - 任务 2259ecdd757dbd31aae1aebd93a80c1a 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05dbc97172ec9166fb1c7ce1d9a2', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2259ecdd757dbd31aae1aebd93a80c1a', 'topic_id': '019d2380827e716283c7ba5b5e38c829', 'platform_id': '6', 'project_id': '019d237fe0757076b01baa3c9081eaa3', 'keyword_id': '019d2380b71c70ce9850862149432dcf', 'keyword': '哪些企业做储能系统集成', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05dbc97271bba2fad85d38116a5b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04e3e17b71a38eb6290550a63aff'}} +2026-05-08 12:32:29.257 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '221e9dee3ede013f9c7d2c6edf5497b4', 'project_id': '019d01d4565672b2820129c03dec7c24', 'keyword_id': '019d01d82e4472df9fdb748f7b14a509', 'keyword': 'PingPong跨境收款到账速度快吗', 'brand': 'PingPong', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:32:32', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:42', 'update_time': '2026-05-08 12:32:32', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:32:29.257 | INFO | __main__:process_task:210 - 开始处理任务: PingPong跨境收款到账速度快吗 - 221e9dee3ede013f9c7d2c6edf5497b4 +2026-05-08 12:32:48.143 | INFO | __main__:process_task:226 - 任务 221e9dee3ede013f9c7d2c6edf5497b4 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05dc129373129f120833c46f1906', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '221e9dee3ede013f9c7d2c6edf5497b4', 'topic_id': '019d01d7f7a1705385fd5d53edfb8be2', 'platform_id': '6', 'project_id': '019d01d4565672b2820129c03dec7c24', 'keyword_id': '019d01d82e4472df9fdb748f7b14a509', 'keyword': 'PingPong跨境收款到账速度快吗', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05dc129373129f120833c520a3e2', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dfe46ab0c707faea7a5a074a96d65'}} +2026-05-08 12:32:48.469 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '21fb9a009bd762be94741bdc471b99fb', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019db478c8a3722a9549f50077dcf7aa', 'keyword': '东南亚合规发票企业配送', 'brand': 'grab', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:32:51', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:32', 'update_time': '2026-05-08 12:32:51', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:32:48.469 | INFO | __main__:process_task:210 - 开始处理任务: 东南亚合规发票企业配送 - 21fb9a009bd762be94741bdc471b99fb +2026-05-08 12:33:37.229 | INFO | __main__:process_task:226 - 任务 21fb9a009bd762be94741bdc471b99fb 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05dcd48572078f2d2eb39a93b935', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '21fb9a009bd762be94741bdc471b99fb', 'topic_id': '019db478543d73ae8f0d5d5c483f1583', 'platform_id': '6', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019db478c8a3722a9549f50077dcf7aa', 'keyword': '东南亚合规发票企业配送', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05dcd48572078f2d2eb39aad0508', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03fbecbf725bb07043864e6211ca'}} +2026-05-08 12:33:37.603 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '21e59969609937a3a05636353b7b82e8', 'project_id': '019dae7d338d7151adfe6850179c4ec5', 'keyword_id': '019dae90691273ceb21bd0f5f9781b1e', 'keyword': '追觅S50 Pro和S50 Ultra区别', 'brand': '追觅', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:33:40', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:01', 'update_time': '2026-05-08 12:33:40', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:33:37.604 | INFO | __main__:process_task:210 - 开始处理任务: 追觅S50 Pro和S50 Ultra区别 - 21e59969609937a3a05636353b7b82e8 +2026-05-08 12:34:08.385 | INFO | __main__:process_task:226 - 任务 21e59969609937a3a05636353b7b82e8 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05dd4ee171129b8bf3c841b4e9ad', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '21e59969609937a3a05636353b7b82e8', 'topic_id': '019dae8ffb09719e8a5a85ca0844949c', 'platform_id': '6', 'project_id': '019dae7d338d7151adfe6850179c4ec5', 'keyword_id': '019dae90691273ceb21bd0f5f9781b1e', 'keyword': '追觅S50 Pro和S50 Ultra区别', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05dd4ee171129b8bf3c842b3c0a3', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03651db370768a11b53a3e11cab8'}} +2026-05-08 12:34:08.745 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '21b1ed95196b99b98ae1d8f36957f89f', 'project_id': '019cd136c41f720694f2d4626d31b663', 'keyword_id': '019cd173339273b68751c443b4cc9e08', 'keyword': '营销活动监控', 'brand': '联蔚', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:34:12', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:58', 'update_time': '2026-05-08 12:34:12', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:34:08.745 | INFO | __main__:process_task:210 - 开始处理任务: 营销活动监控 - 21b1ed95196b99b98ae1d8f36957f89f +2026-05-08 12:34:58.088 | INFO | __main__:process_task:226 - 任务 21b1ed95196b99b98ae1d8f36957f89f 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05de13c273d28afc1a447abcec2c', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '21b1ed95196b99b98ae1d8f36957f89f', 'topic_id': '019cd1729da57097908275a6d3dcbcdf', 'platform_id': '6', 'project_id': '019cd136c41f720694f2d4626d31b663', 'keyword_id': '019cd173339273b68751c443b4cc9e08', 'keyword': '营销活动监控', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05de13c273d28afc1a447b8aeb99', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04d68eec7327b2cab00ef2bc4d6f'}} +2026-05-08 12:34:58.485 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '217ac808cbad88e69a1a25913feccdc9', 'project_id': '019d8fee189f712881e2d9ce538f1841', 'keyword_id': '019d90cc304172f6861f5036923df37f', 'keyword': '市场研究公司推荐', 'brand': '沙利文', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:35:01', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:26', 'update_time': '2026-05-08 12:35:01', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:34:58.486 | INFO | __main__:process_task:210 - 开始处理任务: 市场研究公司推荐 - 217ac808cbad88e69a1a25913feccdc9 +2026-05-08 12:35:45.559 | INFO | __main__:process_task:226 - 任务 217ac808cbad88e69a1a25913feccdc9 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05dec7fa7277bb8c036dc5cdd9fe', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '217ac808cbad88e69a1a25913feccdc9', 'topic_id': '019d900a3067706f8fc40bba8b5c89d4', 'platform_id': '6', 'project_id': '019d8fee189f712881e2d9ce538f1841', 'keyword_id': '019d90cc304172f6861f5036923df37f', 'keyword': '市场研究公司推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05dec7fb71b38bc7a68938529f36', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e054ef296728e97af5de559605fd7'}} +2026-05-08 12:35:45.974 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '2136a1b7046b3c7c742ed2b20eecd7f6', 'project_id': '019d9969714873ed8d57581a78b8eb99', 'keyword_id': '019db3304452706780ee6632ec8defb2', 'keyword': 'ESG鉴证服务机构有哪些推荐?', 'brand': '联合赤道', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:35:49', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:27', 'update_time': '2026-05-08 12:35:49', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:35:45.974 | INFO | __main__:process_task:210 - 开始处理任务: ESG鉴证服务机构有哪些推荐? - 2136a1b7046b3c7c742ed2b20eecd7f6 +2026-05-08 12:36:21.772 | INFO | __main__:process_task:226 - 任务 2136a1b7046b3c7c742ed2b20eecd7f6 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05df563271ccbf2d06dbf6ef953d', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '2136a1b7046b3c7c742ed2b20eecd7f6', 'topic_id': '019db32ad0bc727988544efd7ba18aa4', 'platform_id': '6', 'project_id': '019d9969714873ed8d57581a78b8eb99', 'keyword_id': '019db3304452706780ee6632ec8defb2', 'keyword': 'ESG鉴证服务机构有哪些推荐?', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05df563370b39b816864377246f0', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e035537e67268883554873711a259'}} +2026-05-08 12:36:22.155 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '20f16b718de5af941592f10696f18e7d', 'project_id': '019c13712c1b70c399781da36a2ee908', 'keyword_id': '019c1376f74a73e086e74851afdf8937', 'keyword': '医疗触屏显示器', 'brand': 'ELO', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:36:25', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:43', 'update_time': '2026-05-08 12:36:25', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:36:22.155 | INFO | __main__:process_task:210 - 开始处理任务: 医疗触屏显示器 - 20f16b718de5af941592f10696f18e7d +2026-05-08 12:37:07.396 | INFO | __main__:process_task:226 - 任务 20f16b718de5af941592f10696f18e7d 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e004b67318a89399b345728d27', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '20f16b718de5af941592f10696f18e7d', 'topic_id': '019c1374c65472929556bbd762310af5', 'platform_id': '6', 'project_id': '019c13712c1b70c399781da36a2ee908', 'keyword_id': '019c1376f74a73e086e74851afdf8937', 'keyword': '医疗触屏显示器', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e004b67318a89399b3459cf2ad', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dff3edbd173888c10833912baaac7'}} +2026-05-08 12:37:07.897 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '20cab1153de0d8046a6ba697add5a5c9', 'project_id': '019da500e3b37096be3d447ce3836e06', 'keyword_id': '019da9674c2372c2b999fde11f2e7525', 'keyword': '芳拓生物治疗副作用反馈', 'brand': '芳拓生物', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:37:11', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:01', 'update_time': '2026-05-08 12:37:11', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:37:07.897 | INFO | __main__:process_task:210 - 开始处理任务: 芳拓生物治疗副作用反馈 - 20cab1153de0d8046a6ba697add5a5c9 +2026-05-08 12:37:35.426 | INFO | __main__:process_task:226 - 任务 20cab1153de0d8046a6ba697add5a5c9 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e0775f721f9d76b10b245a5ffe', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '20cab1153de0d8046a6ba697add5a5c9', 'topic_id': '019da966dace72679b534420263f6dc4', 'platform_id': '6', 'project_id': '019da500e3b37096be3d447ce3836e06', 'keyword_id': '019da9674c2372c2b999fde11f2e7525', 'keyword': '芳拓生物治疗副作用反馈', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e077607389b06f836040c404fb', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0399ea4c73dabad946972c762afd'}} +2026-05-08 12:37:35.845 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '20b7aae8223729c868322eb4896dc2eb', 'project_id': '019bf820572e73deb9d4a5ddd74ece5d', 'keyword_id': '019cc0e73bf570d18b78139cf97cc421', 'keyword': '小额哪里借钱比较靠谱', 'brand': '京东金融', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:37:39', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:37', 'update_time': '2026-05-08 12:37:39', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:37:35.846 | INFO | __main__:process_task:210 - 开始处理任务: 小额哪里借钱比较靠谱 - 20b7aae8223729c868322eb4896dc2eb +2026-05-08 12:38:07.862 | INFO | __main__:process_task:226 - 任务 20b7aae8223729c868322eb4896dc2eb 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e0ea6873519b62bf2996955d23', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '20b7aae8223729c868322eb4896dc2eb', 'topic_id': '019cc0e5bf2e7301891bd1f0d6b069ac', 'platform_id': '6', 'project_id': '019bf820572e73deb9d4a5ddd74ece5d', 'keyword_id': '019cc0e73bf570d18b78139cf97cc421', 'keyword': '小额哪里借钱比较靠谱', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e0ea6873519b62bf2996e2a391', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03734c8c72c4a6bd086d9d3b9024'}} +2026-05-08 12:38:08.239 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '204b5737b0a0fad150964071ea8de786', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2e90c3271599261bed1a584bdf3', 'keyword': '东南亚商旅管理靠谱推荐', 'brand': 'grab', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:38:11', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:40', 'update_time': '2026-05-08 12:38:11', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:38:08.239 | INFO | __main__:process_task:210 - 开始处理任务: 东南亚商旅管理靠谱推荐 - 204b5737b0a0fad150964071ea8de786 +2026-05-08 12:39:03.588 | INFO | __main__:process_task:226 - 任务 204b5737b0a0fad150964071ea8de786 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e1ceb772ef94e3f75b72b28991', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '204b5737b0a0fad150964071ea8de786', 'topic_id': '019dd2dd886d71cd919aad794ce8d96d', 'platform_id': '6', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2e90c3271599261bed1a584bdf3', 'keyword': '东南亚商旅管理靠谱推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e1ceb870f38a7f25a6234161c5', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0555939071f0904d85f8902a9b4d'}} +2026-05-08 12:39:04.008 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '201ac226b4307b2a58ea2bf1a495f103', 'project_id': '019c13712c1b70c399781da36a2ee908', 'keyword_id': '019c1376f74a73e086e74851abbc68b7', 'keyword': '医用显示屏', 'brand': 'ELO', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:39:07', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:24', 'update_time': '2026-05-08 12:39:07', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:39:04.008 | INFO | __main__:process_task:210 - 开始处理任务: 医用显示屏 - 201ac226b4307b2a58ea2bf1a495f103 +2026-05-08 12:40:02.453 | INFO | __main__:process_task:226 - 任务 201ac226b4307b2a58ea2bf1a495f103 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e2aa677123b64c0814b20e5e94', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '201ac226b4307b2a58ea2bf1a495f103', 'topic_id': '019c1374c65472929556bbd762310af5', 'platform_id': '6', 'project_id': '019c13712c1b70c399781da36a2ee908', 'keyword_id': '019c1376f74a73e086e74851abbc68b7', 'keyword': '医用显示屏', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e2aa6872b99f57844502287cf8', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e036908a6721ab7a7be6d3d42fd25'}} +2026-05-08 12:40:02.820 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1f705084a32162ddb5f26c1322e8e075', 'project_id': '019d89ec748972799b53fd73e02667ce', 'keyword_id': '019e0304f4447138b9c4e2ecb2d1417a', 'keyword': '香港關節痛保健品推薦', 'brand': '正品藥業', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:40:06', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:26', 'update_time': '2026-05-08 12:40:06', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:40:02.820 | INFO | __main__:process_task:210 - 开始处理任务: 香港關節痛保健品推薦 - 1f705084a32162ddb5f26c1322e8e075 +2026-05-08 12:40:40.913 | INFO | __main__:process_task:226 - 任务 1f705084a32162ddb5f26c1322e8e075 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e34ca170208ef3567c876ecd43', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1f705084a32162ddb5f26c1322e8e075', 'topic_id': '019e0304cf2e723cb6221e520ccafacf', 'platform_id': '6', 'project_id': '019d89ec748972799b53fd73e02667ce', 'keyword_id': '019e0304f4447138b9c4e2ecb2d1417a', 'keyword': '香港關節痛保健品推薦', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e34ca2731ab9c2842445389599', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03057ca572b99cb8d7af74c317c8'}} +2026-05-08 12:40:41.358 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1f47e273079f251c4d89beab7b2f9f9b', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b289627058aa44591fcc9c6aca', 'keyword': '按压式门锁', 'brand': '义文', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:40:44', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:51', 'update_time': '2026-05-08 12:40:44', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:40:41.358 | INFO | __main__:process_task:210 - 开始处理任务: 按压式门锁 - 1f47e273079f251c4d89beab7b2f9f9b +2026-05-08 12:41:21.402 | INFO | __main__:process_task:226 - 任务 1f47e273079f251c4d89beab7b2f9f9b 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e3ec6d7059bf27c8600d5e0830', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1f47e273079f251c4d89beab7b2f9f9b', 'topic_id': '019d29ac45b971d6bcc42d747dff75ff', 'platform_id': '6', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b289627058aa44591fcc9c6aca', 'keyword': '按压式门锁', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e3ec6e726f862f3fda0e1dd3f3', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0497c924716b9b488f23db4f3e4c'}} +2026-05-08 12:41:21.752 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1f2654d38ea04d776f794700cf9875f1', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffaac57273568d637aa3c6adf3ce', 'keyword': '顶级竞速跑鞋对比推荐', 'brand': '阿迪达斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:41:25', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:57', 'update_time': '2026-05-08 12:41:25', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:41:21.752 | INFO | __main__:process_task:210 - 开始处理任务: 顶级竞速跑鞋对比推荐 - 1f2654d38ea04d776f794700cf9875f1 +2026-05-08 12:42:08.205 | INFO | __main__:process_task:226 - 任务 1f2654d38ea04d776f794700cf9875f1 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e4a075702a927432bd52445870', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1f2654d38ea04d776f794700cf9875f1', 'topic_id': '019dffa9cf8072d08c74a839fb0999a2', 'platform_id': '6', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffaac57273568d637aa3c6adf3ce', 'keyword': '顶级竞速跑鞋对比推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e4a075702a927432bd52eff4ed', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0516060c707e8f97abb094d2a228'}} +2026-05-08 12:42:08.546 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1ec314e21cbcdfa48c3a23542045ce1d', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffa5daa6739cbf3b278058e5fe93', 'keyword': 'boost 中底跑鞋推荐', 'brand': '阿迪达斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:42:11', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:13', 'update_time': '2026-05-08 12:42:11', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:42:08.546 | INFO | __main__:process_task:210 - 开始处理任务: boost 中底跑鞋推荐 - 1ec314e21cbcdfa48c3a23542045ce1d +2026-05-08 12:42:40.920 | INFO | __main__:process_task:226 - 任务 1ec314e21cbcdfa48c3a23542045ce1d 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e521e170ed91a89cd348729a02', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1ec314e21cbcdfa48c3a23542045ce1d', 'topic_id': '019dffa5716472de87149afe9ec370b7', 'platform_id': '6', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffa5daa6739cbf3b278058e5fe93', 'keyword': 'boost 中底跑鞋推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e521e170ed91a89cd3493e8c9a', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04df5b6a711fa802451a52a4a541'}} +2026-05-08 12:42:41.271 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1e8cef261edda1c48e09fc8122ef2b3f', 'project_id': '019db9b4df127126902640f3c5499cd3', 'keyword_id': '019db9b7c0d072e88fc29b369aedda84', 'keyword': '国内知名的战略咨询公司排名', 'brand': '心胜战略咨询', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:42:44', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:07', 'update_time': '2026-05-08 12:42:44', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:42:41.271 | INFO | __main__:process_task:210 - 开始处理任务: 国内知名的战略咨询公司排名 - 1e8cef261edda1c48e09fc8122ef2b3f +2026-05-08 12:43:30.847 | INFO | __main__:process_task:226 - 任务 1e8cef261edda1c48e09fc8122ef2b3f 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e5e4d170dcb1cbb7935b1836c1', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1e8cef261edda1c48e09fc8122ef2b3f', 'topic_id': '019db9b7917c7015a59f90d06737a90c', 'platform_id': '6', 'project_id': '019db9b4df127126902640f3c5499cd3', 'keyword_id': '019db9b7c0d072e88fc29b369aedda84', 'keyword': '国内知名的战略咨询公司排名', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e5e4d2709294abab7af848a716', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e051f029d701d8bba1d49891036a2'}} +2026-05-08 12:43:31.212 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1e501b1c68e7a8e7f8e9c056aabae48c', 'project_id': '019dfc1ffe5e7024a2cadeed299f91a3', 'keyword_id': '019dfc2fb785710b970b47d8e023b86f', 'keyword': '香港参观展排行榜', 'brand': '香港故宫文化博物馆', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:43:34', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:49', 'update_time': '2026-05-08 12:43:34', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:43:31.212 | INFO | __main__:process_task:210 - 开始处理任务: 香港参观展排行榜 - 1e501b1c68e7a8e7f8e9c056aabae48c +2026-05-08 12:44:23.085 | INFO | __main__:process_task:226 - 任务 1e501b1c68e7a8e7f8e9c056aabae48c 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e6b000722e9de165afd441c206', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1e501b1c68e7a8e7f8e9c056aabae48c', 'topic_id': '019dfc256afe706a9f78e73d328b36a8', 'platform_id': '6', 'project_id': '019dfc1ffe5e7024a2cadeed299f91a3', 'keyword_id': '019dfc2fb785710b970b47d8e023b86f', 'keyword': '香港参观展排行榜', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e6b000722e9de165afd47d7c4d', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04f1259d71b291b34cb0faee0d12'}} +2026-05-08 12:44:23.460 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1dd0375388e805b76945c69880b67386', 'project_id': '019d958756ac7247b48c82c6045c708b', 'keyword_id': '019d958977fa72259e896eba09dce381', 'keyword': '值得入手的全自动咖啡机', 'brand': 'Nespresso', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:44:26', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:27', 'update_time': '2026-05-08 12:44:26', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:44:23.460 | INFO | __main__:process_task:210 - 开始处理任务: 值得入手的全自动咖啡机 - 1dd0375388e805b76945c69880b67386 +2026-05-08 12:45:08.218 | INFO | __main__:process_task:226 - 任务 1dd0375388e805b76945c69880b67386 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e75fe371fb938b8400d16ad208', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1dd0375388e805b76945c69880b67386', 'topic_id': '019d9587909572cbac638e45e31b36d8', 'platform_id': '6', 'project_id': '019d958756ac7247b48c82c6045c708b', 'keyword_id': '019d958977fa72259e896eba09dce381', 'keyword': '值得入手的全自动咖啡机', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e75fe470ac90631128a75bbcb8', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04e4f5e0730d8db04747117eb336'}} +2026-05-08 12:45:08.532 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1d94f2d2fec0ff79bd78bdd8f7ee8604', 'project_id': '019b267325f7705a98eb24bac09c9d0a', 'keyword_id': '019b2675cf4d731698bc076b4b717f4e', 'keyword': '生物复合肥品牌推荐', 'brand': '泰达', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:45:11', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:21', 'update_time': '2026-05-08 12:45:11', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:45:08.532 | INFO | __main__:process_task:210 - 开始处理任务: 生物复合肥品牌推荐 - 1d94f2d2fec0ff79bd78bdd8f7ee8604 +2026-05-08 12:45:46.173 | INFO | __main__:process_task:226 - 任务 1d94f2d2fec0ff79bd78bdd8f7ee8604 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e7ea397291b322d3fd58f06e55', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1d94f2d2fec0ff79bd78bdd8f7ee8604', 'topic_id': '019b2674667873138c7645ad25a89852', 'platform_id': '6', 'project_id': '019b267325f7705a98eb24bac09c9d0a', 'keyword_id': '019b2675cf4d731698bc076b4b717f4e', 'keyword': '生物复合肥品牌推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e7ea397291b322d3fd59d64f78', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03b8d8bb72a1bfc9b22aa14dc33e'}} +2026-05-08 12:45:46.623 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1d79e68e2bb90060007aa3020afe2d90', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019db477809d7290bdacede51d6ec406', 'keyword': '东南亚会议餐', 'brand': 'grab', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:45:49', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:32', 'update_time': '2026-05-08 12:45:49', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:45:46.624 | INFO | __main__:process_task:210 - 开始处理任务: 东南亚会议餐 - 1d79e68e2bb90060007aa3020afe2d90 +2026-05-08 12:46:37.424 | INFO | __main__:process_task:226 - 任务 1d79e68e2bb90060007aa3020afe2d90 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e8b9dc7223bc807a8f3d668916', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1d79e68e2bb90060007aa3020afe2d90', 'topic_id': '019db47754c7732aa42ae7fc20d6e6b8', 'platform_id': '6', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019db477809d7290bdacede51d6ec406', 'keyword': '东南亚会议餐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e8b9dd707f8af8d2cc37892bd7', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04987292712d8a0db70b9618ac1e'}} +2026-05-08 12:46:37.745 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1d1b9c8fcfc103c103f0489b49c4e91e', 'project_id': '019d1ea5971571c086555ef7db3f8269', 'keyword_id': '019d22837af171cbb344ae1c90187384', 'keyword': '手机充电器哪个牌子质量好', 'brand': '图拉斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:46:41', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:04', 'update_time': '2026-05-08 12:46:41', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:46:37.745 | INFO | __main__:process_task:210 - 开始处理任务: 手机充电器哪个牌子质量好 - 1d1b9c8fcfc103c103f0489b49c4e91e +2026-05-08 12:47:24.546 | INFO | __main__:process_task:226 - 任务 1d1b9c8fcfc103c103f0489b49c4e91e 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05e971dc70a0aa0d2afa91de7788', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1d1b9c8fcfc103c103f0489b49c4e91e', 'topic_id': '019d228161ab739a97c972f68f019e88', 'platform_id': '6', 'project_id': '019d1ea5971571c086555ef7db3f8269', 'keyword_id': '019d22837af171cbb344ae1c90187384', 'keyword': '手机充电器哪个牌子质量好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05e971dd72098202a16d3acc102e', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04d1eab673538cb1f62bf0113d19'}} +2026-05-08 12:47:24.872 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1cd87af6f7e6abcb46a82e3841ea1687', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c41bf927a705f86f5539f313df824', 'keyword': '2026中国国际智能巡检机器人展览会', 'brand': '国展', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:47:28', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:29', 'update_time': '2026-05-08 12:47:28', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:47:24.872 | INFO | __main__:process_task:210 - 开始处理任务: 2026中国国际智能巡检机器人展览会 - 1cd87af6f7e6abcb46a82e3841ea1687 +2026-05-08 12:48:08.062 | INFO | __main__:process_task:226 - 任务 1cd87af6f7e6abcb46a82e3841ea1687 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ea155e7113b933c971c090c8ce', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1cd87af6f7e6abcb46a82e3841ea1687', 'topic_id': '019c418decb7708dbc2cebe23942efb7', 'platform_id': '6', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c41bf927a705f86f5539f313df824', 'keyword': '2026中国国际智能巡检机器人展览会', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ea155e7113b933c971c0bdcbdb', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e05d59dd0721dafbf6e56410014fc'}} +2026-05-08 12:48:08.429 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1c966f4513b853fa2b754a93db5073fd', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdedf9868731ea5067716224e0345', 'keyword': '语文口碑最好的网课', 'brand': '学而思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:48:11', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:29', 'update_time': '2026-05-08 12:48:11', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:48:08.430 | INFO | __main__:process_task:210 - 开始处理任务: 语文口碑最好的网课 - 1c966f4513b853fa2b754a93db5073fd +2026-05-08 12:49:03.688 | INFO | __main__:process_task:226 - 任务 1c966f4513b853fa2b754a93db5073fd 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05eaf162738c8236da096fba5c4e', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1c966f4513b853fa2b754a93db5073fd', 'topic_id': '019bdedf797373489caee239c379f91d', 'platform_id': '6', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdedf9868731ea5067716224e0345', 'keyword': '语文口碑最好的网课', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05eaf163705e85046a65a15938dc', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0517aa8873d7a6ebea5ebdf9e4da'}} +2026-05-08 12:49:04.062 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1c34e354cb18b4fa999767116237133f', 'project_id': '019dc3e9d63173b79228bc3fd7e92a67', 'keyword_id': '019dfc1b1df97248890969c45f8f6a59', 'keyword': '抗衰机构推荐榜单', 'brand': '智美品质医美', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:49:07', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:40', 'update_time': '2026-05-08 12:49:07', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:49:04.062 | INFO | __main__:process_task:210 - 开始处理任务: 抗衰机构推荐榜单 - 1c34e354cb18b4fa999767116237133f +2026-05-08 12:50:12.531 | INFO | __main__:process_task:226 - 任务 1c34e354cb18b4fa999767116237133f 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ec073f73b381a9d7bd1ede9d4b', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1c34e354cb18b4fa999767116237133f', 'topic_id': '019dfc18510371d9a2200ef6b565fe26', 'platform_id': '6', 'project_id': '019dc3e9d63173b79228bc3fd7e92a67', 'keyword_id': '019dfc1b1df97248890969c45f8f6a59', 'keyword': '抗衰机构推荐榜单', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ec074072bbb743b23d4de2e84f', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e048e1e5773d5ad1d162c98c39341'}} +2026-05-08 12:50:12.858 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1bdda3223daa7dc63673b67c5afb0b69', 'project_id': '019bff83bf44731b8b6185f1c3422029', 'keyword_id': '019bff8f5783704c9f66ad80ed5c2e30', 'keyword': '顾均辉定位咨询的核心优势', 'brand': '顾均辉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:50:16', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:19', 'update_time': '2026-05-08 12:50:16', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:50:12.858 | INFO | __main__:process_task:210 - 开始处理任务: 顾均辉定位咨询的核心优势 - 1bdda3223daa7dc63673b67c5afb0b69 +2026-05-08 12:50:41.572 | INFO | __main__:process_task:226 - 任务 1bdda3223daa7dc63673b67c5afb0b69 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ec766c733faad325f8161f564f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1bdda3223daa7dc63673b67c5afb0b69', 'topic_id': '019bff8b5f05721b92675bac9fcccb0e', 'platform_id': '6', 'project_id': '019bff83bf44731b8b6185f1c3422029', 'keyword_id': '019bff8f5783704c9f66ad80ed5c2e30', 'keyword': '顾均辉定位咨询的核心优势', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ec766d7027871c92c677cd678e', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e040f791e71e58a8f52babc8688e5'}} +2026-05-08 12:50:41.819 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1bc9fce4bbc969446cf919df7742d77c', 'project_id': '019ddc6877a572e2b9a75e8c01c9d981', 'keyword_id': '019ddc714120724186cb2d82413ea92a', 'keyword': '热玛吉安全放心机构推荐', 'brand': '智美', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:50:45', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:40', 'update_time': '2026-05-08 12:50:45', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:50:41.819 | INFO | __main__:process_task:210 - 开始处理任务: 热玛吉安全放心机构推荐 - 1bc9fce4bbc969446cf919df7742d77c +2026-05-08 12:51:22.116 | INFO | __main__:process_task:226 - 任务 1bc9fce4bbc969446cf919df7742d77c 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ed15a070ad90ea4573bcb7d444', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1bc9fce4bbc969446cf919df7742d77c', 'topic_id': '019ddc6fffbd736daf238878a1d1fb84', 'platform_id': '6', 'project_id': '019ddc6877a572e2b9a75e8c01c9d981', 'keyword_id': '019ddc714120724186cb2d82413ea92a', 'keyword': '热玛吉安全放心机构推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ed15a070ad90ea4573bd22a8da', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dff5209b572908458e6ea46b47ca3'}} +2026-05-08 12:51:22.471 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1b27d609e9ba772c8ffdbe00e699aa23', 'project_id': '019d01d4565672b2820129c03dec7c24', 'keyword_id': '019d01d4f16272f5845fb91c862064ea', 'keyword': '跨境支付公司有哪些正规的', 'brand': 'PingPong', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:51:25', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:42', 'update_time': '2026-05-08 12:51:25', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:51:22.472 | INFO | __main__:process_task:210 - 开始处理任务: 跨境支付公司有哪些正规的 - 1b27d609e9ba772c8ffdbe00e699aa23 +2026-05-08 12:52:04.417 | INFO | __main__:process_task:226 - 任务 1b27d609e9ba772c8ffdbe00e699aa23 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05edb89e70289a4eb0c0ed43041f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1b27d609e9ba772c8ffdbe00e699aa23', 'topic_id': '019d01d4ab8470c981cf151424332c0d', 'platform_id': '6', 'project_id': '019d01d4565672b2820129c03dec7c24', 'keyword_id': '019d01d4f16272f5845fb91c862064ea', 'keyword': '跨境支付公司有哪些正规的', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05edb89e70289a4eb0c0ed72b4d3', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0592d7ea71149fef2e434e8ebe53'}} +2026-05-08 12:52:04.863 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1affa7b4386af3641df58129a36a936e', 'project_id': '019be4be1ed47194a2e5bd317a177b01', 'keyword_id': '019be4d2ee4e70a2b42fd8e430a00919', 'keyword': '全球高级定制服装品牌推荐', 'brand': 'Stefano Ricci', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:52:08', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:30', 'update_time': '2026-05-08 12:52:08', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:52:04.863 | INFO | __main__:process_task:210 - 开始处理任务: 全球高级定制服装品牌推荐 - 1affa7b4386af3641df58129a36a936e +2026-05-08 12:53:01.179 | INFO | __main__:process_task:226 - 任务 1affa7b4386af3641df58129a36a936e 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ee969270e3b9ebc8a5ccd4cd67', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1affa7b4386af3641df58129a36a936e', 'topic_id': '019be4ce912372468a3230f1a71abb5e', 'platform_id': '6', 'project_id': '019be4be1ed47194a2e5bd317a177b01', 'keyword_id': '019be4d2ee4e70a2b42fd8e430a00919', 'keyword': '全球高级定制服装品牌推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ee969371289b936e90450b057e', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e051168be7218ad0b73a40f07390c'}} +2026-05-08 12:53:01.598 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1a901a3d735f9cba438d92199079fd98', 'project_id': '019a52b4acb572a88323fafd489e28e0', 'keyword_id': '019a52e7295971b1a1e036d5ea194fab', 'keyword': '碱性水牌子推荐', 'brand': '康师傅', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:53:04', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:08', 'update_time': '2026-05-08 12:53:04', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:53:01.598 | INFO | __main__:process_task:210 - 开始处理任务: 碱性水牌子推荐 - 1a901a3d735f9cba438d92199079fd98 +2026-05-08 12:53:40.534 | INFO | __main__:process_task:226 - 任务 1a901a3d735f9cba438d92199079fd98 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ef305c72bf9f57291bcecd55f1', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1a901a3d735f9cba438d92199079fd98', 'topic_id': '019a52e6338d731f9ca709ed799565dd', 'platform_id': '6', 'project_id': '019a52b4acb572a88323fafd489e28e0', 'keyword_id': '019a52e7295971b1a1e036d5ea194fab', 'keyword': '碱性水牌子推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ef305c72bf9f57291bcf895fc6', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e044fb63471e7a26a18395a8ae5a5'}} +2026-05-08 12:53:40.960 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1a3472836edc8cbaac405af1b78c5491', 'project_id': '019c2d57093771e0827c5e32bc94bf84', 'keyword_id': '019c2d586db1728f9d20e238aec83e49', 'keyword': 'OV通配符SSL证书', 'brand': '天威诚信', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:53:44', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:51', 'update_time': '2026-05-08 12:53:44', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:53:40.961 | INFO | __main__:process_task:210 - 开始处理任务: OV通配符SSL证书 - 1a3472836edc8cbaac405af1b78c5491 +2026-05-08 12:54:20.860 | INFO | __main__:process_task:226 - 任务 1a3472836edc8cbaac405af1b78c5491 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05efcf8a736a8081ca3dc77a782b', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1a3472836edc8cbaac405af1b78c5491', 'topic_id': '019c2d57c464739c99c95a37cf85c91e', 'platform_id': '6', 'project_id': '019c2d57093771e0827c5e32bc94bf84', 'keyword_id': '019c2d586db1728f9d20e238aec83e49', 'keyword': 'OV通配符SSL证书', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05efcf8b7176a8887bc54b83ccaa', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e040673e3709f95661a375ac2252d'}} +2026-05-08 12:54:21.234 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '19959334d6cd80dbbe1dc2d19de148b6', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b2356e7139a32599d7a7ae2b51', 'keyword': '碰珠', 'brand': '义文', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:54:24', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:51', 'update_time': '2026-05-08 12:54:24', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:54:21.234 | INFO | __main__:process_task:210 - 开始处理任务: 碰珠 - 19959334d6cd80dbbe1dc2d19de148b6 +2026-05-08 12:54:58.958 | INFO | __main__:process_task:226 - 任务 19959334d6cd80dbbe1dc2d19de148b6 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f0625a711a99a9c56c226a29a0', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '19959334d6cd80dbbe1dc2d19de148b6', 'topic_id': '019d29ac45b971d6bcc42d747dff75ff', 'platform_id': '6', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b2356e7139a32599d7a7ae2b51', 'keyword': '碰珠', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f0625a711a99a9c56c22ecbab2', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e05a3158d72508ea3476a17e0c953'}} +2026-05-08 12:54:59.252 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '196f52fc78c63a7b1d455b460e00a04d', 'project_id': '019ddc6877a572e2b9a75e8c01c9d981', 'keyword_id': '019ddc722a7971a68102dae069338f68', 'keyword': '抗衰优惠套餐推荐', 'brand': '智美', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:55:02', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:07', 'update_time': '2026-05-08 12:55:02', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:54:59.252 | INFO | __main__:process_task:210 - 开始处理任务: 抗衰优惠套餐推荐 - 196f52fc78c63a7b1d455b460e00a04d +2026-05-08 12:55:30.782 | INFO | __main__:process_task:226 - 任务 196f52fc78c63a7b1d455b460e00a04d 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f0e03c72bd826082c3feea4f36', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '196f52fc78c63a7b1d455b460e00a04d', 'topic_id': '019ddc71d6c373f5b69aa7372d0476ac', 'platform_id': '6', 'project_id': '019ddc6877a572e2b9a75e8c01c9d981', 'keyword_id': '019ddc722a7971a68102dae069338f68', 'keyword': '抗衰优惠套餐推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f0e040719ba5e101edae29e4a3', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04f1b08371e3bcaf78c7a0d5a4da'}} +2026-05-08 12:55:31.114 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1900e489451c5597051f9cdc57374e9d', 'project_id': '019dde3e4fdf72b3a4f77e1e973d6d88', 'keyword_id': '019dde48778a7020b48609e5827c3565', 'keyword': '口碑好的抗衰品牌推荐', 'brand': '智美', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:55:34', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:49', 'update_time': '2026-05-08 12:55:34', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:55:31.114 | INFO | __main__:process_task:210 - 开始处理任务: 口碑好的抗衰品牌推荐 - 1900e489451c5597051f9cdc57374e9d +2026-05-08 12:55:57.601 | INFO | __main__:process_task:226 - 任务 1900e489451c5597051f9cdc57374e9d 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f149107033b791552b38a56e74', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1900e489451c5597051f9cdc57374e9d', 'topic_id': '019dde43a91f73f7a77e0be8360d4be4', 'platform_id': '6', 'project_id': '019dde3e4fdf72b3a4f77e1e973d6d88', 'keyword_id': '019dde48778a7020b48609e5827c3565', 'keyword': '口碑好的抗衰品牌推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f149107033b791552b397641a8', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dfebfbd07726385aeb94be15b31f8'}} +2026-05-08 12:55:57.961 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '18dc36c074fcc58aa106441b56df10f4', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b43f3f73df989cc111c5a817ac', 'keyword': '弹簧锁销', 'brand': '义文', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:56:01', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:51', 'update_time': '2026-05-08 12:56:01', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:55:57.962 | INFO | __main__:process_task:210 - 开始处理任务: 弹簧锁销 - 18dc36c074fcc58aa106441b56df10f4 +2026-05-08 12:56:45.747 | INFO | __main__:process_task:226 - 任务 18dc36c074fcc58aa106441b56df10f4 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f202bf729198fdd29830fb6fe3', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '18dc36c074fcc58aa106441b56df10f4', 'topic_id': '019d29aaf0a0709a874ead5a06597912', 'platform_id': '6', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b43f3f73df989cc111c5a817ac', 'keyword': '弹簧锁销', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f202bf729198fdd298312d919a', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e058bc8bc7116aba0008a5ee24519'}} +2026-05-08 12:56:46.040 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '18893e2e0a7e58a1cb31980843910d21', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b25b997113bf3fb08ea88e9ee1', 'keyword': '重载滑轨', 'brand': '义文', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:56:49', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:18', 'update_time': '2026-05-08 12:56:49', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:56:46.041 | INFO | __main__:process_task:210 - 开始处理任务: 重载滑轨 - 18893e2e0a7e58a1cb31980843910d21 +2026-05-08 12:57:40.985 | INFO | __main__:process_task:226 - 任务 18893e2e0a7e58a1cb31980843910d21 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f2d8ee71068d25b4fad5887028', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '18893e2e0a7e58a1cb31980843910d21', 'topic_id': '019d29aa48ba739fb9d002cd63db5b2b', 'platform_id': '6', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b25b997113bf3fb08ea88e9ee1', 'keyword': '重载滑轨', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f2d8ee71068d25b4fad637eab3', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dff91946b7077a8fa07171cabaa49'}} +2026-05-08 12:57:41.369 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '18478c496268d8fc939ef928e7f604fb', 'project_id': '019dba250737726695bad432c51d744e', 'keyword_id': '019dba2608277222bded6decd9d82794', 'keyword': '酒店机器人品牌推荐', 'brand': '云迹科技', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:57:44', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:40', 'update_time': '2026-05-08 12:57:44', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:57:41.370 | INFO | __main__:process_task:210 - 开始处理任务: 酒店机器人品牌推荐 - 18478c496268d8fc939ef928e7f604fb +2026-05-08 12:58:16.963 | INFO | __main__:process_task:226 - 任务 18478c496268d8fc939ef928e7f604fb 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f369f270cdb2a6e7ffddbfff14', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '18478c496268d8fc939ef928e7f604fb', 'topic_id': '019dba25fa7f73649aeec6e805c37eaa', 'platform_id': '6', 'project_id': '019dba250737726695bad432c51d744e', 'keyword_id': '019dba2608277222bded6decd9d82794', 'keyword': '酒店机器人品牌推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f369f270cdb2a6e7ffddec8306', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dff737c7070419fa52d377819b5b3'}} +2026-05-08 12:58:17.303 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '182c231d459b0c93f9f0008c49c646ff', 'project_id': '019c13712c1b70c399781da36a2ee908', 'keyword_id': '019c1376f74a73e086e74851c564621f', 'keyword': '超市POS收银', 'brand': 'ELO', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:58:20', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:43', 'update_time': '2026-05-08 12:58:20', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:58:17.303 | INFO | __main__:process_task:210 - 开始处理任务: 超市POS收银 - 182c231d459b0c93f9f0008c49c646ff +2026-05-08 12:59:22.460 | INFO | __main__:process_task:226 - 任务 182c231d459b0c93f9f0008c49c646ff 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f457cb7226ad14dca98a75c7be', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '182c231d459b0c93f9f0008c49c646ff', 'topic_id': '019c1374c65472929556bbd762310af5', 'platform_id': '6', 'project_id': '019c13712c1b70c399781da36a2ee908', 'keyword_id': '019c1376f74a73e086e74851c564621f', 'keyword': '超市POS收银', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f457cc7194b02d64f1ca11bd2a', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e05e35c1c72259d06d1eb1ca2385a'}} +2026-05-08 12:59:22.776 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '17dd76119a0dd32d6c48c075cbe5a559', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c47615574706b9e1b41d689098092', 'keyword': '行星滚柱丝杠展会', 'brand': '国展', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:59:26', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:35', 'update_time': '2026-05-08 12:59:26', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:59:22.776 | INFO | __main__:process_task:210 - 开始处理任务: 行星滚柱丝杠展会 - 17dd76119a0dd32d6c48c075cbe5a559 +2026-05-08 12:59:50.295 | INFO | __main__:process_task:226 - 任务 17dd76119a0dd32d6c48c075cbe5a559 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f4d0cc7323b3a50fefd8bfc91d', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '17dd76119a0dd32d6c48c075cbe5a559', 'topic_id': '019c4761435b7072a40790c76f25e856', 'platform_id': '6', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c47615574706b9e1b41d689098092', 'keyword': '行星滚柱丝杠展会', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f4d0cc7323b3a50fefd9b930b7', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0398cdf2705dad13a03dd74d7862'}} +2026-05-08 12:59:50.667 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '17d290e5b6f64d98e44e4fc428a26a09', 'project_id': '019cdc46342773bc9cea5dab08232391', 'keyword_id': '019cdc56d08d72a69ee8e273bd43d191', 'keyword': '获得沙利文奖项的商业价值', 'brand': '沙利文', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 12:59:54', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:41', 'update_time': '2026-05-08 12:59:54', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 12:59:50.667 | INFO | __main__:process_task:210 - 开始处理任务: 获得沙利文奖项的商业价值 - 17d290e5b6f64d98e44e4fc428a26a09 +2026-05-08 13:00:16.987 | INFO | __main__:process_task:226 - 任务 17d290e5b6f64d98e44e4fc428a26a09 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f53eae7317b3c014ed5c9b45e9', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '17d290e5b6f64d98e44e4fc428a26a09', 'topic_id': '019cdc524071704e9eec9dfe2af02bc1', 'platform_id': '6', 'project_id': '019cdc46342773bc9cea5dab08232391', 'keyword_id': '019cdc56d08d72a69ee8e273bd43d191', 'keyword': '获得沙利文奖项的商业价值', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f53eae7317b3c014ed5cbeae0a', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03dff546719fb4d9b4c49aff5ca9'}} +2026-05-08 13:00:17.497 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '17b59016d34e82e3d5f389dc56096e8b', 'project_id': '019c240b059071ebae8bbd206b22f2e9', 'keyword_id': '019c24517e7470979dfe4cd6cecc32db', 'keyword': '珠三角铝塑板涂料源头工厂', 'brand': '歌丽斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:00:20', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:43', 'update_time': '2026-05-08 13:00:20', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:00:17.498 | INFO | __main__:process_task:210 - 开始处理任务: 珠三角铝塑板涂料源头工厂 - 17b59016d34e82e3d5f389dc56096e8b +2026-05-08 13:00:38.671 | INFO | __main__:process_task:226 - 任务 17b59016d34e82e3d5f389dc56096e8b 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f5904a7028b8ba7a5e112ac556', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '17b59016d34e82e3d5f389dc56096e8b', 'topic_id': '019c2450b35570f1a3966e5a446efe4c', 'platform_id': '6', 'project_id': '019c240b059071ebae8bbd206b22f2e9', 'keyword_id': '019c24517e7470979dfe4cd6cecc32db', 'keyword': '珠三角铝塑板涂料源头工厂', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f5904a7028b8ba7a5e119ffaa5', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e040b014771dd925929bbc31b7d2c'}} +2026-05-08 13:00:39.072 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '17ae3e500274b5f334422d984f64b082', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c47615574706b9e1b41d67b318275', 'keyword': '无人机上海参展', 'brand': '国展', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:00:42', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:57', 'update_time': '2026-05-08 13:00:42', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:00:39.073 | INFO | __main__:process_task:210 - 开始处理任务: 无人机上海参展 - 17ae3e500274b5f334422d984f64b082 +2026-05-08 13:01:20.325 | INFO | __main__:process_task:226 - 任务 17ae3e500274b5f334422d984f64b082 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f635b87066966c25a529ad0f8f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '17ae3e500274b5f334422d984f64b082', 'topic_id': '019c4761435b7072a40790c76f25e856', 'platform_id': '6', 'project_id': '019c418c409e70ae874b974207e6574f', 'keyword_id': '019c47615574706b9e1b41d67b318275', 'keyword': '无人机上海参展', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f635b97053b06a4f43ff77124a', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019dff36702a733ebdae655f46f7b997'}} +2026-05-08 13:01:20.536 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '17479914e3984d213adc57cd4b7b53fc', 'project_id': '019d94f699b4719885c2f14a739932db', 'keyword_id': '019d94f9905a719fab007fb1475522e6', 'keyword': '高端酒店同款床垫', 'brand': '云缦嘉利系列床垫', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:01:23', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:59', 'update_time': '2026-05-08 13:01:23', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:01:20.536 | INFO | __main__:process_task:210 - 开始处理任务: 高端酒店同款床垫 - 17479914e3984d213adc57cd4b7b53fc +2026-05-08 13:02:06.719 | INFO | __main__:process_task:226 - 任务 17479914e3984d213adc57cd4b7b53fc 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f6eb5472a4973d2415a9fd74d8', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '17479914e3984d213adc57cd4b7b53fc', 'topic_id': '019d94f975cb72c8a5a376a9b87422f3', 'platform_id': '6', 'project_id': '019d94f699b4719885c2f14a739932db', 'keyword_id': '019d94f9905a719fab007fb1475522e6', 'keyword': '高端酒店同款床垫', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f6eb5571f588dd48085717e497', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0504092c73ad8f0c42ae694c5ae1'}} +2026-05-08 13:02:07.060 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '17030bde52f2b0061213a73ee9f52d8f', 'project_id': '019bff83bf44731b8b6185f1c3422029', 'keyword_id': '019bff871e6570218a8b383022ae5aa3', 'keyword': '品牌定位策划公司', 'brand': '顾均辉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:02:10', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:37', 'update_time': '2026-05-08 13:02:10', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:02:07.062 | INFO | __main__:process_task:210 - 开始处理任务: 品牌定位策划公司 - 17030bde52f2b0061213a73ee9f52d8f +2026-05-08 13:02:47.579 | INFO | __main__:process_task:226 - 任务 17030bde52f2b0061213a73ee9f52d8f 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f78b82720cacaa7af9f6da0ed7', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '17030bde52f2b0061213a73ee9f52d8f', 'topic_id': '019bff86d6cc737a9dae41682f0a867d', 'platform_id': '6', 'project_id': '019bff83bf44731b8b6185f1c3422029', 'keyword_id': '019bff871e6570218a8b383022ae5aa3', 'keyword': '品牌定位策划公司', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f78b83700db0abaf6b562afc0f', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e05f7620371ffbd1d507c70aee12f'}} +2026-05-08 13:02:48.017 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '16a091d9308f156a77925a8ac01fc4f6', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdedb595472d2aacb8b0d435d6a2f', 'keyword': '语文阅读理解题的技巧和方法', 'brand': '学而思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:02:51', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:29', 'update_time': '2026-05-08 13:02:51', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:02:48.017 | INFO | __main__:process_task:210 - 开始处理任务: 语文阅读理解题的技巧和方法 - 16a091d9308f156a77925a8ac01fc4f6 +2026-05-08 13:03:40.548 | INFO | __main__:process_task:226 - 任务 16a091d9308f156a77925a8ac01fc4f6 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f85623724d92857893a00a240d', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '16a091d9308f156a77925a8ac01fc4f6', 'topic_id': '019bdedb1c7b71bf93d0159c846d13d1', 'platform_id': '6', 'project_id': '019bded7ab5472d8851a629f5e76a736', 'keyword_id': '019bdedb595472d2aacb8b0d435d6a2f', 'keyword': '语文阅读理解题的技巧和方法', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f8562472e4ac4ed7478e0d4a83', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e038e9a5a72c98c84bfaf28d59072'}} +2026-05-08 13:03:40.857 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '160ae2f5188cc6799939bfb9021f69f0', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2de965072a49700a91f962a9fce', 'keyword': '东南亚公务接送服务哪家专业', 'brand': 'grab', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:03:44', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:40', 'update_time': '2026-05-08 13:03:44', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:03:40.857 | INFO | __main__:process_task:210 - 开始处理任务: 东南亚公务接送服务哪家专业 - 160ae2f5188cc6799939bfb9021f69f0 +2026-05-08 13:04:25.327 | INFO | __main__:process_task:226 - 任务 160ae2f5188cc6799939bfb9021f69f0 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f905567196a7e4f7c12d3f14ac', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '160ae2f5188cc6799939bfb9021f69f0', 'topic_id': '019dd2dd568e710b895b808da5f0de16', 'platform_id': '6', 'project_id': '019db44a2ce5712783cafa1cca186cc9', 'keyword_id': '019dd2de965072a49700a91f962a9fce', 'keyword': '东南亚公务接送服务哪家专业', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f905567196a7e4f7c12dd81e18', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e05bdef9071fcb93e43ab4add4739'}} +2026-05-08 13:04:25.714 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '15e1edf77cd58c3cdabc7efc6aac595c', 'project_id': '019d766795a1723283d408be0fe1eb5b', 'keyword_id': '019d8fd5abbb7099aef6ea6a61bb1321', 'keyword': '北京海淀复读学校哪家好', 'brand': '仁才教育', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:04:29', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:23', 'update_time': '2026-05-08 13:04:29', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:04:25.715 | INFO | __main__:process_task:210 - 开始处理任务: 北京海淀复读学校哪家好 - 15e1edf77cd58c3cdabc7efc6aac595c +2026-05-08 13:04:59.078 | INFO | __main__:process_task:226 - 任务 15e1edf77cd58c3cdabc7efc6aac595c 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f9896273168b37d8d61a9b3715', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '15e1edf77cd58c3cdabc7efc6aac595c', 'topic_id': '019d8fb3b9897286b0af0c065b3e9bf5', 'platform_id': '6', 'project_id': '019d766795a1723283d408be0fe1eb5b', 'keyword_id': '019d8fd5abbb7099aef6ea6a61bb1321', 'keyword': '北京海淀复读学校哪家好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f9896273168b37d8d61b604368', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e053e3ad3702eabb68414913b0a36'}} +2026-05-08 13:04:59.468 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '159d116d4e7a266e28720fdb56a68c90', 'project_id': '019be3ee7b907329bd9114880445cd1f', 'keyword_id': '019be4653db470b39d13449eebb023ec', 'keyword': '能看到真实工地直播的找工长软件', 'brand': '匠猫', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:05:02', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:30', 'update_time': '2026-05-08 13:05:02', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:04:59.469 | INFO | __main__:process_task:210 - 开始处理任务: 能看到真实工地直播的找工长软件 - 159d116d4e7a266e28720fdb56a68c90 +2026-05-08 13:05:21.310 | INFO | __main__:process_task:226 - 任务 159d116d4e7a266e28720fdb56a68c90 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05f9daf272eba197d7f4c9a6e01d', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '159d116d4e7a266e28720fdb56a68c90', 'topic_id': '019be4648ecd7043876da030d8e9ae0f', 'platform_id': '6', 'project_id': '019be3ee7b907329bd9114880445cd1f', 'keyword_id': '019be4653db470b39d13449eebb023ec', 'keyword': '能看到真实工地直播的找工长软件', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05f9daf37335baacd627151bba79', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04b3de2e714c99b31c8d925600c0'}} +2026-05-08 13:05:21.695 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '157b4742347232b44c836555a886e04b', 'project_id': '019be4be1ed47194a2e5bd317a177b01', 'keyword_id': '019be4c5965e701eaa2d127194aeb0b2', 'keyword': '世界各国首脑御用的男装品牌', 'brand': 'Stefano Ricci', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:05:25', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:18', 'update_time': '2026-05-08 13:05:25', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:05:21.695 | INFO | __main__:process_task:210 - 开始处理任务: 世界各国首脑御用的男装品牌 - 157b4742347232b44c836555a886e04b +2026-05-08 13:05:55.981 | INFO | __main__:process_task:226 - 任务 157b4742347232b44c836555a886e04b 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05fa66fe7081bbb8d25f240275c3', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '157b4742347232b44c836555a886e04b', 'topic_id': '019be4c3411970fe86c4943740cfbab8', 'platform_id': '6', 'project_id': '019be4be1ed47194a2e5bd317a177b01', 'keyword_id': '019be4c5965e701eaa2d127194aeb0b2', 'keyword': '世界各国首脑御用的男装品牌', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05fa66fe7081bbb8d25f249c86e3', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0467eb86704d9ccb2a95e21e32ac'}} +2026-05-08 13:05:56.375 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '019e05fa5e197297968df0b7cd2f35e2', 'project_id': '019d4c3a33d070acac02e9d271de3a6b', 'keyword_id': '019e05fa5dca724f887648db46e6cacc', 'keyword': '上海浦东哪里可以买高档床垫', 'brand': '席梦思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '00:00', 'gather_filter': '2026-05-08 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-08 13:05:59', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 13:05:54', 'update_time': '2026-05-08 13:05:59', 'delete_time': 0, 'create_by': '019d23728d7371b4a9e336e93b059691', 'update_by': '019d23728d7371b4a9e336e93b059691', 'type': 1} +2026-05-08 13:05:56.375 | INFO | __main__:process_task:210 - 开始处理任务: 上海浦东哪里可以买高档床垫 - 019e05fa5e197297968df0b7cd2f35e2 +2026-05-08 13:06:32.273 | INFO | __main__:process_task:226 - 任务 019e05fa5e197297968df0b7cd2f35e2 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05fafb1672e68edd89707fc5cfe3', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '019e05fa5e197297968df0b7cd2f35e2', 'topic_id': '019e05fa33be734197dd892e826666cb', 'platform_id': '6', 'project_id': '019d4c3a33d070acac02e9d271de3a6b', 'keyword_id': '019e05fa5dca724f887648db46e6cacc', 'keyword': '上海浦东哪里可以买高档床垫', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05fafb1672e68edd8970806b00d8', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': 0}} +2026-05-08 13:06:32.574 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '019e05fa90647086887d3ae5a89e52ea', 'project_id': '019d4c3a33d070acac02e9d271de3a6b', 'keyword_id': '019e05fa8fb473aab8de660ba22b6359', 'keyword': '2026年上海家具博览会有哪些高端床垫品牌参展', 'brand': '席梦思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '00:00', 'gather_filter': '2026-05-08 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-08 13:06:36', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 13:06:07', 'update_time': '2026-05-08 13:06:36', 'delete_time': 0, 'create_by': '019d23728d7371b4a9e336e93b059691', 'update_by': '019d23728d7371b4a9e336e93b059691', 'type': 1} +2026-05-08 13:06:32.574 | INFO | __main__:process_task:210 - 开始处理任务: 2026年上海家具博览会有哪些高端床垫品牌参展 - 019e05fa90647086887d3ae5a89e52ea +2026-05-08 13:07:10.067 | INFO | __main__:process_task:226 - 任务 019e05fa90647086887d3ae5a89e52ea 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05fb889c704b9200d3f2156bef8e', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '019e05fa90647086887d3ae5a89e52ea', 'topic_id': '019e05fa33be734197dd892e826666cb', 'platform_id': '6', 'project_id': '019d4c3a33d070acac02e9d271de3a6b', 'keyword_id': '019e05fa8fb473aab8de660ba22b6359', 'keyword': '2026年上海家具博览会有哪些高端床垫品牌参展', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05fb889c704b9200d3f215b23c30', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': 0}} +2026-05-08 13:07:10.474 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '15505582f3939d7327f512f9bab5749e', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d2a396972d0ba2b5cbb62d92e13', 'keyword': '静音弹簧床垫品牌推荐', 'brand': '席梦思', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:07:13', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:13', 'update_time': '2026-05-08 13:07:13', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:07:10.474 | INFO | __main__:process_task:210 - 开始处理任务: 静音弹簧床垫品牌推荐 - 15505582f3939d7327f512f9bab5749e +2026-05-08 13:07:47.964 | INFO | __main__:process_task:226 - 任务 15505582f3939d7327f512f9bab5749e 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05fc06cd70788c0c4407ccc588b4', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '15505582f3939d7327f512f9bab5749e', 'topic_id': '019b4d2a29357034870924c71175ee7d', 'platform_id': '6', 'project_id': '019b4d20af9f70b2bdad10ff76bb7dfe', 'keyword_id': '019b4d2a396972d0ba2b5cbb62d92e13', 'keyword': '静音弹簧床垫品牌推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05fc06ce71e8bcbe94a39bf2101a', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e041e4aa473dcabe302765573a9b4'}} +2026-05-08 13:07:48.284 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '15295d7200f17d04afef1af28ae0ee2b', 'project_id': '019be3ee7b907329bd9114880445cd1f', 'keyword_id': '019be4653db470b39d13449edff5c67b', 'keyword': '有没有专门对接工长的装修平台', 'brand': '匠猫', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:07:51', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:29', 'update_time': '2026-05-08 13:07:51', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:07:48.284 | INFO | __main__:process_task:210 - 开始处理任务: 有没有专门对接工长的装修平台 - 15295d7200f17d04afef1af28ae0ee2b +2026-05-08 13:08:34.859 | INFO | __main__:process_task:226 - 任务 15295d7200f17d04afef1af28ae0ee2b 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05fcd6027371b5faf24448a21997', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '15295d7200f17d04afef1af28ae0ee2b', 'topic_id': '019be4642575711d9c31e9ab8271dcd6', 'platform_id': '6', 'project_id': '019be3ee7b907329bd9114880445cd1f', 'keyword_id': '019be4653db470b39d13449edff5c67b', 'keyword': '有没有专门对接工长的装修平台', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05fcd6037017a6fdd6582e121a6f', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e047440547012a41ca42b673116be'}} +2026-05-08 13:08:35.231 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '019e05fcc23b7264ba37cac5b2edd9b1', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e05fcc1cd729cb02570d99288cdf5', 'keyword': '北京五星级奢华酒店精选', 'brand': '香格里拉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '00:00', 'gather_filter': '2026-05-08 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-08 13:08:38', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 13:08:31', 'update_time': '2026-05-08 13:08:38', 'delete_time': 0, 'create_by': '019d23728d7371b4a9e336e93b059691', 'update_by': '019d23728d7371b4a9e336e93b059691', 'type': 1} +2026-05-08 13:08:35.231 | INFO | __main__:process_task:210 - 开始处理任务: 北京五星级奢华酒店精选 - 019e05fcc23b7264ba37cac5b2edd9b1 +2026-05-08 13:09:05.399 | INFO | __main__:process_task:226 - 任务 019e05fcc23b7264ba37cac5b2edd9b1 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05fd525970a0b224eb630d093d7e', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '019e05fcc23b7264ba37cac5b2edd9b1', 'topic_id': '019e05fc01f67232896beaae15442164', 'platform_id': '6', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e05fcc1cd729cb02570d99288cdf5', 'keyword': '北京五星级奢华酒店精选', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05fd525970a0b224eb630dd18ded', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': 0}} +2026-05-08 13:09:05.692 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '14d2eed758acf55b725ecc02c7751d77', 'project_id': '019a95f401567182a2e3d481db5bf0cc', 'keyword_id': '019a9647188b7137bce234ad89f70a09', 'keyword': '支点壳哪个牌子的好', 'brand': '图拉斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:09:09', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:19', 'update_time': '2026-05-08 13:09:09', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:09:05.693 | INFO | __main__:process_task:210 - 开始处理任务: 支点壳哪个牌子的好 - 14d2eed758acf55b725ecc02c7751d77 +2026-05-08 13:09:31.249 | INFO | __main__:process_task:226 - 任务 14d2eed758acf55b725ecc02c7751d77 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05fdac2b711d9c67514fefacd654', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '14d2eed758acf55b725ecc02c7751d77', 'topic_id': '019a9646e90c732f9e3d475c9f962df0', 'platform_id': '6', 'project_id': '019a95f401567182a2e3d481db5bf0cc', 'keyword_id': '019a9647188b7137bce234ad89f70a09', 'keyword': '支点壳哪个牌子的好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05fdac2c73aeb0c971d86c74e8f7', 'origin_rank': 1, 'prev_rank': 0, 'prev_id': '019e0577e19773cb8735d68372c26953'}} +2026-05-08 13:09:31.471 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '019e05fdaffb72b0bea5586db4bc32e3', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e05fdaf4d72e1852c4bd7e2e3bcee', 'keyword': '广州五星酒店推荐', 'brand': '香格里拉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '00:00', 'gather_filter': '2026-05-08 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-08 13:09:34', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 13:09:32', 'update_time': '2026-05-08 13:09:34', 'delete_time': 0, 'create_by': '019d23728d7371b4a9e336e93b059691', 'update_by': '019d23728d7371b4a9e336e93b059691', 'type': 1} +2026-05-08 13:09:31.471 | INFO | __main__:process_task:210 - 开始处理任务: 广州五星酒店推荐 - 019e05fdaffb72b0bea5586db4bc32e3 +2026-05-08 13:10:23.618 | INFO | __main__:process_task:226 - 任务 019e05fdaffb72b0bea5586db4bc32e3 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05fe84a473a0b9dd527ba61e741a', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '019e05fdaffb72b0bea5586db4bc32e3', 'topic_id': '019e05fc01f67232896beaae15442164', 'platform_id': '6', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e05fdaf4d72e1852c4bd7e2e3bcee', 'keyword': '广州五星酒店推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05fe84a57290a71168ee1e380227', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': 0}} +2026-05-08 13:10:23.836 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '019e05fe6d337235b377962aad38398b', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e05fe6c92712f8c92456fe144c09f', 'keyword': '杭州五星酒店指南', 'brand': '香格里拉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '00:00', 'gather_filter': '2026-05-08 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-08 13:10:27', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 13:10:20', 'update_time': '2026-05-08 13:10:27', 'delete_time': 0, 'create_by': '019d23728d7371b4a9e336e93b059691', 'update_by': '019d23728d7371b4a9e336e93b059691', 'type': 1} +2026-05-08 13:10:23.836 | INFO | __main__:process_task:210 - 开始处理任务: 杭州五星酒店指南 - 019e05fe6d337235b377962aad38398b +2026-05-08 13:11:13.938 | INFO | __main__:process_task:226 - 任务 019e05fe6d337235b377962aad38398b 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ff43ee731490a1dc98b074751f', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '019e05fe6d337235b377962aad38398b', 'topic_id': '019e05fc01f67232896beaae15442164', 'platform_id': '6', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e05fe6c92712f8c92456fe144c09f', 'keyword': '杭州五星酒店指南', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ff43ef718abfd046249a888673', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': 0}} +2026-05-08 13:11:14.726 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '019e05fec76972b3a71f386e7d32049d', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e05fec6d47247bc9ab6a7cc2d478b', 'keyword': '苏州五星酒店推荐', 'brand': '香格里拉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '00:00', 'gather_filter': '2026-05-08 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-08 13:11:18', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 13:10:43', 'update_time': '2026-05-08 13:11:18', 'delete_time': 0, 'create_by': '019d23728d7371b4a9e336e93b059691', 'update_by': '019d23728d7371b4a9e336e93b059691', 'type': 1} +2026-05-08 13:11:14.726 | INFO | __main__:process_task:210 - 开始处理任务: 苏州五星酒店推荐 - 019e05fec76972b3a71f386e7d32049d +2026-05-08 13:11:44.249 | INFO | __main__:process_task:226 - 任务 019e05fec76972b3a71f386e7d32049d 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e05ffbb6372a8a926c18e2f248c55', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '019e05fec76972b3a71f386e7d32049d', 'topic_id': '019e05fc01f67232896beaae15442164', 'platform_id': '6', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e05fec6d47247bc9ab6a7cc2d478b', 'keyword': '苏州五星酒店推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e05ffbb6372a8a926c18e30212346', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': 0}} +2026-05-08 13:11:44.602 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '019e05ffaff47399a1e46532d196523b', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e05ffafe37137a547b4443c73942a', 'keyword': '外滩附近哪家高端酒店好', 'brand': '香格里拉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '00:00', 'gather_filter': '2026-05-08 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-08 13:11:48', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 13:11:43', 'update_time': '2026-05-08 13:11:48', 'delete_time': 0, 'create_by': '019d23728d7371b4a9e336e93b059691', 'update_by': '019d23728d7371b4a9e336e93b059691', 'type': 1} +2026-05-08 13:11:44.602 | INFO | __main__:process_task:210 - 开始处理任务: 外滩附近哪家高端酒店好 - 019e05ffaff47399a1e46532d196523b +2026-05-08 13:12:19.045 | INFO | __main__:process_task:226 - 任务 019e05ffaff47399a1e46532d196523b 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0600444571f896adf713cfb7e2ad', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '019e05ffaff47399a1e46532d196523b', 'topic_id': '019e05ff8b05725c881116ffebb933cb', 'platform_id': '6', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e05ffafe37137a547b4443c73942a', 'keyword': '外滩附近哪家高端酒店好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0600444571f896adf713d01ac101', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': 0}} +2026-05-08 13:12:19.344 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '019e06003b7973139acb995b0fb6c853', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e06003ae372f1b79b0ed7cc3ebeb9', 'keyword': '上海中心附近哪家酒店好', 'brand': '香格里拉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '00:00', 'gather_filter': '2026-05-08 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-08 13:12:22', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 13:12:19', 'update_time': '2026-05-08 13:12:22', 'delete_time': 0, 'create_by': '019d23728d7371b4a9e336e93b059691', 'update_by': '019d23728d7371b4a9e336e93b059691', 'type': 1} +2026-05-08 13:12:19.345 | INFO | __main__:process_task:210 - 开始处理任务: 上海中心附近哪家酒店好 - 019e06003b7973139acb995b0fb6c853 +2026-05-08 13:12:52.343 | INFO | __main__:process_task:226 - 任务 019e06003b7973139acb995b0fb6c853 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0600c64470dcb695f963c07189cb', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '019e06003b7973139acb995b0fb6c853', 'topic_id': '019e05ff8b05725c881116ffebb933cb', 'platform_id': '6', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e06003ae372f1b79b0ed7cc3ebeb9', 'keyword': '上海中心附近哪家酒店好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0600c64470dcb695f963c11d85a8', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': 0}} +2026-05-08 13:12:52.760 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '14502e1cbdd7309bf799b179a879f24d', 'project_id': '019a51f51a9e70f8a2eae6efeda12ba6', 'keyword_id': '019a51f5906f735a8ea198b0a2767c1d', 'keyword': '网上开户哪个证券公司好', 'brand': '开源证券', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:12:56', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:02', 'update_time': '2026-05-08 13:12:56', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:12:52.761 | INFO | __main__:process_task:210 - 开始处理任务: 网上开户哪个证券公司好 - 14502e1cbdd7309bf799b179a879f24d +2026-05-08 13:13:31.166 | INFO | __main__:process_task:226 - 任务 14502e1cbdd7309bf799b179a879f24d 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0601556273239ec8997758adbdd4', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '14502e1cbdd7309bf799b179a879f24d', 'topic_id': '019a51f571a070ac8e75930b2100649e', 'platform_id': '6', 'project_id': '019a51f51a9e70f8a2eae6efeda12ba6', 'keyword_id': '019a51f5906f735a8ea198b0a2767c1d', 'keyword': '网上开户哪个证券公司好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0601556273239ec89977590be485', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e05f940f472a8b1ddddbf588c769e'}} +2026-05-08 13:13:31.561 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '019e06014f2d736d8bf35fcca2b4f63e', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e06014ed97172baf9cafb2953d18c', 'keyword': '后滩公园附近高端酒店哪家好', 'brand': '香格里拉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '00:00', 'gather_filter': '2026-05-08 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-08 13:13:34', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 13:13:29', 'update_time': '2026-05-08 13:13:34', 'delete_time': 0, 'create_by': '019d23728d7371b4a9e336e93b059691', 'update_by': '019d23728d7371b4a9e336e93b059691', 'type': 1} +2026-05-08 13:13:31.562 | INFO | __main__:process_task:210 - 开始处理任务: 后滩公园附近高端酒店哪家好 - 019e06014f2d736d8bf35fcca2b4f63e +2026-05-08 13:14:12.287 | INFO | __main__:process_task:226 - 任务 019e06014f2d736d8bf35fcca2b4f63e 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0601fe177126b615d065fc2809f9', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '019e06014f2d736d8bf35fcca2b4f63e', 'topic_id': '019e05ff8b05725c881116ffebb933cb', 'platform_id': '6', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e06014ed97172baf9cafb2953d18c', 'keyword': '后滩公园附近高端酒店哪家好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0601fe187213a26e5d1381755fc2', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': 0}} +2026-05-08 13:14:12.647 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '019e0601da627047a68a80aa83c5151b', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e0601da1a73938a482209fca534f1', 'keyword': '新国际博览中心附近五星酒店有哪些', 'brand': '香格里拉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '00:00', 'gather_filter': '2026-05-08 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-08 13:14:16', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 13:14:05', 'update_time': '2026-05-08 13:14:16', 'delete_time': 0, 'create_by': '019d23728d7371b4a9e336e93b059691', 'update_by': '019d23728d7371b4a9e336e93b059691', 'type': 1} +2026-05-08 13:14:12.647 | INFO | __main__:process_task:210 - 开始处理任务: 新国际博览中心附近五星酒店有哪些 - 019e0601da627047a68a80aa83c5151b +2026-05-08 13:14:36.107 | INFO | __main__:process_task:226 - 任务 019e0601da627047a68a80aa83c5151b 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e06025aeb72478b1be38956a67e11', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '019e0601da627047a68a80aa83c5151b', 'topic_id': '019e05ff8b05725c881116ffebb933cb', 'platform_id': '6', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e0601da1a73938a482209fca534f1', 'keyword': '新国际博览中心附近五星酒店有哪些', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e06025aeb72478b1be38956e35bbb', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': 0}} +2026-05-08 13:14:36.372 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '019e06017b5f701fb12d827ac4b4989e', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e06017aca71f0a7c43dffbe3b58b7', 'keyword': '三林滨江附近高品质酒店有哪些', 'brand': '香格里拉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '00:00', 'gather_filter': '2026-05-08 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-08 13:14:39', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 13:13:40', 'update_time': '2026-05-08 13:14:39', 'delete_time': 0, 'create_by': '019d23728d7371b4a9e336e93b059691', 'update_by': '019d23728d7371b4a9e336e93b059691', 'type': 1} +2026-05-08 13:14:36.372 | INFO | __main__:process_task:210 - 开始处理任务: 三林滨江附近高品质酒店有哪些 - 019e06017b5f701fb12d827ac4b4989e +2026-05-08 13:15:02.491 | INFO | __main__:process_task:226 - 任务 019e06017b5f701fb12d827ac4b4989e 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0602c38a71dfa043b6b821b14c36', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '019e06017b5f701fb12d827ac4b4989e', 'topic_id': '019e05ff8b05725c881116ffebb933cb', 'platform_id': '6', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e06017aca71f0a7c43dffbe3b58b7', 'keyword': '三林滨江附近高品质酒店有哪些', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0602c38b73848db44aa8bf21ef25', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': 0}} +2026-05-08 13:15:02.859 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '019e0602bc1f71a9a6e989875675851c', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e0602bb9072cf981664169f9ed7b5', 'keyword': '香格里拉酒店会员权益有哪些', 'brand': '香格里拉', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '00:00', 'gather_filter': '2026-05-08 00:00:00', 'status': 2, 'retry_count': 0, 'screen_flag': 2, 'thinking': 0, 'is_deal': 1, 'is_init': 1, 'publish_time': '2026-05-08 13:15:06', 'screen_url': '', 'priority': 999, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 13:15:03', 'update_time': '2026-05-08 13:15:06', 'delete_time': 0, 'create_by': '019d23728d7371b4a9e336e93b059691', 'update_by': '019d23728d7371b4a9e336e93b059691', 'type': 1} +2026-05-08 13:15:02.859 | INFO | __main__:process_task:210 - 开始处理任务: 香格里拉酒店会员权益有哪些 - 019e0602bc1f71a9a6e989875675851c +2026-05-08 13:15:48.442 | INFO | __main__:process_task:226 - 任务 019e0602bc1f71a9a6e989875675851c 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e060375fb7368ae20ba61f01bc57c', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '019e0602bc1f71a9a6e989875675851c', 'topic_id': '019e06023cd07162842efee85c6e0eea', 'platform_id': '6', 'project_id': '019e05adf04473928e4b63fe917d5483', 'keyword_id': '019e0602bb9072cf981664169f9ed7b5', 'keyword': '香格里拉酒店会员权益有哪些', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e060375fb7368ae20ba61f0a5e532', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': 0}} +2026-05-08 13:15:48.834 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '14443017704ff09728ef911e70625d53', 'project_id': '019d01d4565672b2820129c03dec7c24', 'keyword_id': '019d01d82e4472df9fdb748f7b14a509', 'keyword': 'PingPong跨境收款到账速度快吗', 'brand': 'PingPong', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:15:52', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:04', 'update_time': '2026-05-08 13:15:52', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:15:48.834 | INFO | __main__:process_task:210 - 开始处理任务: PingPong跨境收款到账速度快吗 - 14443017704ff09728ef911e70625d53 +2026-05-08 13:16:12.610 | INFO | __main__:process_task:226 - 任务 14443017704ff09728ef911e70625d53 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0603d116725aae207ca999c256e7', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '14443017704ff09728ef911e70625d53', 'topic_id': '019d01d7f7a1705385fd5d53edfb8be2', 'platform_id': '6', 'project_id': '019d01d4565672b2820129c03dec7c24', 'keyword_id': '019d01d82e4472df9fdb748f7b14a509', 'keyword': 'PingPong跨境收款到账速度快吗', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0603d116725aae207ca99a1fe489', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e05dc129373129f120833c46f1906'}} +2026-05-08 13:16:12.876 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1412ef5cc304535dad8a46fc477aad99', 'project_id': '019df74fec257337813e2651180be6e0', 'keyword_id': '019df777e8037300a3075e11d64f0ee0', 'keyword': '去西安旅游,晚上在酒店想吃宵夜点什么外卖最好', 'brand': '美团', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:16:16', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:08', 'update_time': '2026-05-08 13:16:16', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:16:12.876 | INFO | __main__:process_task:210 - 开始处理任务: 去西安旅游,晚上在酒店想吃宵夜点什么外卖最好 - 1412ef5cc304535dad8a46fc477aad99 +2026-05-08 13:16:55.277 | INFO | __main__:process_task:226 - 任务 1412ef5cc304535dad8a46fc477aad99 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e06047ab4738bb5cfb10e1c1084ff', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1412ef5cc304535dad8a46fc477aad99', 'topic_id': '019df77752b9724ba2eda51c834ea934', 'platform_id': '6', 'project_id': '019df74fec257337813e2651180be6e0', 'keyword_id': '019df777e8037300a3075e11d64f0ee0', 'keyword': '去西安旅游,晚上在酒店想吃宵夜点什么外卖最好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e06047ab4738bb5cfb10e1ce9d66d', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e05962ca771f6a68176f8cdd79112'}} +2026-05-08 13:16:55.726 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '13d57377f2f7732ce41850b1950a1bef', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffaa42e373939c70e1c77ea23484', 'keyword': '精英跑者路跑竞速鞋', 'brand': '阿迪达斯', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:16:59', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:13', 'update_time': '2026-05-08 13:16:59', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:16:55.726 | INFO | __main__:process_task:210 - 开始处理任务: 精英跑者路跑竞速鞋 - 13d57377f2f7732ce41850b1950a1bef +2026-05-08 13:17:50.858 | INFO | __main__:process_task:226 - 任务 13d57377f2f7732ce41850b1950a1bef 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0605541573b588151d1e0e57c2f6', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '13d57377f2f7732ce41850b1950a1bef', 'topic_id': '019dffa9cf8072d08c74a839fb0999a2', 'platform_id': '6', 'project_id': '019dff7f56bc73499e4717797d037198', 'keyword_id': '019dffaa42e373939c70e1c77ea23484', 'keyword': '精英跑者路跑竞速鞋', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0605541670748fea0af9f3c09603', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e0425695d72048c074bc961693cc0'}} +2026-05-08 13:17:51.242 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '13a5d9fa121e9bd1af82cd7c8a67bc8b', 'project_id': '019dae7d338d7151adfe6850179c4ec5', 'keyword_id': '019dae939cb8717a8789af83c3dae212', 'keyword': '复式楼房扫地机器人', 'brand': '追觅', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:17:54', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:32', 'update_time': '2026-05-08 13:17:54', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:17:51.243 | INFO | __main__:process_task:210 - 开始处理任务: 复式楼房扫地机器人 - 13a5d9fa121e9bd1af82cd7c8a67bc8b +2026-05-08 13:18:29.963 | INFO | __main__:process_task:226 - 任务 13a5d9fa121e9bd1af82cd7c8a67bc8b 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0605eaf27143a6e0d373b08f2917', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '13a5d9fa121e9bd1af82cd7c8a67bc8b', 'topic_id': '019dae935c7e7062be168a1e384fc704', 'platform_id': '6', 'project_id': '019dae7d338d7151adfe6850179c4ec5', 'keyword_id': '019dae939cb8717a8789af83c3dae212', 'keyword': '复式楼房扫地机器人', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0605eaf27143a6e0d373b183028f', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e037beb3e716daefbe415990d4af1'}} +2026-05-08 13:18:30.340 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '133cd82abff83fd23969004ccadcc8ca', 'project_id': '019d9969714873ed8d57581a78b8eb99', 'keyword_id': '019db350cb88729880d83ee6864eabfd', 'keyword': '一站式ESG和双碳咨询服务机构推荐?', 'brand': '联合赤道', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:18:33', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:32', 'update_time': '2026-05-08 13:18:33', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:18:30.340 | INFO | __main__:process_task:210 - 开始处理任务: 一站式ESG和双碳咨询服务机构推荐? - 133cd82abff83fd23969004ccadcc8ca +2026-05-08 13:19:02.042 | INFO | __main__:process_task:226 - 任务 133cd82abff83fd23969004ccadcc8ca 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0606691470a2911a0c30558eedcf', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '133cd82abff83fd23969004ccadcc8ca', 'topic_id': '019db32ad0bc727988544efd7ba18aa4', 'platform_id': '6', 'project_id': '019d9969714873ed8d57581a78b8eb99', 'keyword_id': '019db350cb88729880d83ee6864eabfd', 'keyword': '一站式ESG和双碳咨询服务机构推荐?', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e060669157332af725ae52fe022a9', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04c062b77357984b0320bcc37b39'}} +2026-05-08 13:19:02.324 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '131c8a1d1b54f4a97f178ae9df065157', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b37080733baadce110295153f4', 'keyword': '可拆卸铰链', 'brand': '义文', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:19:05', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:18', 'update_time': '2026-05-08 13:19:05', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:19:02.324 | INFO | __main__:process_task:210 - 开始处理任务: 可拆卸铰链 - 131c8a1d1b54f4a97f178ae9df065157 +2026-05-08 13:19:54.917 | INFO | __main__:process_task:226 - 任务 131c8a1d1b54f4a97f178ae9df065157 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e060730ec7094ab0df39551947a43', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '131c8a1d1b54f4a97f178ae9df065157', 'topic_id': '019d29aaa3ce723da4b04ea50130efb7', 'platform_id': '6', 'project_id': '019d29659c3372e5894c9292d364cebd', 'keyword_id': '019d29b37080733baadce110295153f4', 'keyword': '可拆卸铰链', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e060730ec7094ab0df39551ad8020', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e04269fc0729cba16f06dec0c7a4f'}} +2026-05-08 13:19:55.374 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1292e157236f7bf9127f8cbf479e9442', 'project_id': '019dae7d338d7151adfe6850179c4ec5', 'keyword_id': '019dae8f20f7722c91c6fa8c5f4a8052', 'keyword': '扫拖一体机器人', 'brand': '追觅', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:19:58', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:01', 'update_time': '2026-05-08 13:19:58', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:19:55.375 | INFO | __main__:process_task:210 - 开始处理任务: 扫拖一体机器人 - 1292e157236f7bf9127f8cbf479e9442 +2026-05-08 13:20:53.974 | INFO | __main__:process_task:226 - 任务 1292e157236f7bf9127f8cbf479e9442 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e06081de570ffa141c2553344b8a2', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1292e157236f7bf9127f8cbf479e9442', 'topic_id': '019dae8ed23273b8887e06ee34da08c7', 'platform_id': '6', 'project_id': '019dae7d338d7151adfe6850179c4ec5', 'keyword_id': '019dae8f20f7722c91c6fa8c5f4a8052', 'keyword': '扫拖一体机器人', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e06081de67230ad5c79c2a2b75f98', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e053244b071ebb8af24306552a962'}} +2026-05-08 13:20:54.309 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '122488882f1501acb1b65d1ccae03ed4', 'project_id': '019be3ee7b907329bd9114880445cd1f', 'keyword_id': '019be4653db470b39d13449ef05a78ba', 'keyword': '哪里能找到靠谱的瓦工', 'brand': '匠猫', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:20:57', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:18', 'update_time': '2026-05-08 13:20:57', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:20:54.309 | INFO | __main__:process_task:210 - 开始处理任务: 哪里能找到靠谱的瓦工 - 122488882f1501acb1b65d1ccae03ed4 +2026-05-08 13:21:34.947 | INFO | __main__:process_task:226 - 任务 122488882f1501acb1b65d1ccae03ed4 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0608bf34700982ae6ceacf2b384d', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '122488882f1501acb1b65d1ccae03ed4', 'topic_id': '019be464c18a71e698407abb9bec87a2', 'platform_id': '6', 'project_id': '019be3ee7b907329bd9114880445cd1f', 'keyword_id': '019be4653db470b39d13449ef05a78ba', 'keyword': '哪里能找到靠谱的瓦工', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0608bf357204a3b238967ef4f08b', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e056066ac7160ab9766f207fa5780'}} +2026-05-08 13:21:35.312 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '11acc75ee6b73194de0e25a827f4401f', 'project_id': '019c4209dd0971118fb04f35f866d3f1', 'keyword_id': '019c420bdada7115862875a554bf0de3', 'keyword': '澳门啤酒好喝吗', 'brand': '澳门啤酒', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:01', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:21:38', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:35', 'update_time': '2026-05-08 13:21:38', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:21:35.312 | INFO | __main__:process_task:210 - 开始处理任务: 澳门啤酒好喝吗 - 11acc75ee6b73194de0e25a827f4401f +2026-05-08 13:22:09.951 | INFO | __main__:process_task:226 - 任务 11acc75ee6b73194de0e25a827f4401f 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e060932427268a4141eff5abc3e27', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '11acc75ee6b73194de0e25a827f4401f', 'topic_id': '019c420baf2970079b0c31fbf5a62ef0', 'platform_id': '6', 'project_id': '019c4209dd0971118fb04f35f866d3f1', 'keyword_id': '019c420bdada7115862875a554bf0de3', 'keyword': '澳门啤酒好喝吗', 'keyword_category_id': 1, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0609324372ca83a6e62ec1dd4b27', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03ade84470949dcd8eba117440d3'}} +2026-05-08 13:22:10.290 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '116d6aee78acf1f93c6861a9f0053fc0', 'project_id': '019a971632d671789635186b0cf15f31', 'keyword_id': '019a97185e1b7061a523526654fff28a', 'keyword': '蒸烤一体机哪个品牌好', 'brand': '老板', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:22:13', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:19', 'update_time': '2026-05-08 13:22:13', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:22:10.291 | INFO | __main__:process_task:210 - 开始处理任务: 蒸烤一体机哪个品牌好 - 116d6aee78acf1f93c6861a9f0053fc0 +2026-05-08 13:22:50.682 | INFO | __main__:process_task:226 - 任务 116d6aee78acf1f93c6861a9f0053fc0 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e0609e91971d6a5baed7de8ac4367', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '116d6aee78acf1f93c6861a9f0053fc0', 'topic_id': '019a9717f13773ebac0c91fe8b0b6f2d', 'platform_id': '6', 'project_id': '019a971632d671789635186b0cf15f31', 'keyword_id': '019a97185e1b7061a523526654fff28a', 'keyword': '蒸烤一体机哪个品牌好', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e0609e91a7106a5192ac519e0867a', 'origin_rank': 2, 'prev_rank': 0, 'prev_id': '019e03f2abbe727f9d168d738c1127f1'}} +2026-05-08 13:22:51.019 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '110886cfb57164ab15493ee5549e8c88', 'project_id': '019dfd2b7ae17289a67389753c90dc97', 'keyword_id': '019dfd2d830371a2bcbc8c9dde26467a', 'keyword': '什么血糖仪最好最准确', 'brand': '华广瑞特', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:22:54', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:13', 'update_time': '2026-05-08 13:22:54', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:22:51.019 | INFO | __main__:process_task:210 - 开始处理任务: 什么血糖仪最好最准确 - 110886cfb57164ab15493ee5549e8c88 +2026-05-08 13:23:31.861 | INFO | __main__:process_task:226 - 任务 110886cfb57164ab15493ee5549e8c88 提交返回: {'code': 500, 'msg': '当前状态禁止提交', 'data': []} +2026-05-08 13:23:32.218 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '10af82026441cff452d7adbea0527754', 'project_id': '019d9969714873ed8d57581a78b8eb99', 'keyword_id': '019db33114c573e1b0536c54ef0b3e37', 'keyword': '标普CSA问卷填报辅导机构哪家专业?', 'brand': '联合赤道', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:30:02', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:23:35', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:30:59', 'update_time': '2026-05-08 13:23:35', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:23:32.218 | INFO | __main__:process_task:210 - 开始处理任务: 标普CSA问卷填报辅导机构哪家专业? - 10af82026441cff452d7adbea0527754 +2026-05-08 13:23:58.171 | INFO | __main__:process_task:226 - 任务 10af82026441cff452d7adbea0527754 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e060aeed572faab032ddb65a55a2c', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '10af82026441cff452d7adbea0527754', 'topic_id': '019db32ad0bc727988544efd7ba18aa4', 'platform_id': '6', 'project_id': '019d9969714873ed8d57581a78b8eb99', 'keyword_id': '019db33114c573e1b0536c54ef0b3e37', 'keyword': '标普CSA问卷填报辅导机构哪家专业?', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e060aeed67167a52a4059d8e9eb23', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e039d3dec717fa980bf0a47969005'}} +2026-05-08 13:23:58.560 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '1089714af50e7c598e6c7eeeedd11125', 'project_id': '019d89ec748972799b53fd73e02667ce', 'keyword_id': '019e030433f470e28a755343e2045ff2', 'keyword': '去香港買潤肺止咳保健品有什麼牌子?', 'brand': '正品藥業', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:24:01', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:26', 'update_time': '2026-05-08 13:24:01', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:23:58.560 | INFO | __main__:process_task:210 - 开始处理任务: 去香港買潤肺止咳保健品有什麼牌子? - 1089714af50e7c598e6c7eeeedd11125 +2026-05-08 13:24:34.138 | INFO | __main__:process_task:226 - 任务 1089714af50e7c598e6c7eeeedd11125 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e060b7ceb73fe90e6fd43b67179e6', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '1089714af50e7c598e6c7eeeedd11125', 'topic_id': '019e0303d959709dbd72dd3993819010', 'platform_id': '6', 'project_id': '019d89ec748972799b53fd73e02667ce', 'keyword_id': '019e030433f470e28a755343e2045ff2', 'keyword': '去香港買潤肺止咳保健品有什麼牌子?', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e060b7cec7380951013c7012a5e70', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e03a7783e7189bdcb76c1a5f23418'}} +2026-05-08 13:24:34.383 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '104e23fa2ed2c07b0c22c5e81025e5f1', 'project_id': '019ddc6877a572e2b9a75e8c01c9d981', 'keyword_id': '019ddc72e06971e4a1ae896f780aa1d6', 'keyword': '高端抗衰品牌推荐', 'brand': '智美', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:24:37', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:40', 'update_time': '2026-05-08 13:24:37', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:24:34.383 | INFO | __main__:process_task:210 - 开始处理任务: 高端抗衰品牌推荐 - 104e23fa2ed2c07b0c22c5e81025e5f1 +2026-05-08 13:25:45.869 | INFO | __main__:process_task:226 - 任务 104e23fa2ed2c07b0c22c5e81025e5f1 提交返回: {'code': 0, 'msg': '提交成功', 'data': {'id': '019e060c9206721594df3cdbbec4f2ed', 'project_type': 1, 'res_type': 1, 'spider_type': 1, 'task_id': '104e23fa2ed2c07b0c22c5e81025e5f1', 'topic_id': '019ddc72c211720bb8fb56e5b03b5f30', 'platform_id': '6', 'project_id': '019ddc6877a572e2b9a75e8c01c9d981', 'keyword_id': '019ddc72e06971e4a1ae896f780aa1d6', 'keyword': '高端抗衰品牌推荐', 'keyword_category_id': 2, 'gather_time': '2026-05-08 06:10:15', 'gather_date': '2026-05-08', 'port': 1, 'img_url': '', 'rank': 0, 'content_id': '019e060c920772acba939f2540b71539', 'origin_rank': 0, 'prev_rank': 0, 'prev_id': '019e044c859573b6b47e451acfd5c2a0'}} +2026-05-08 13:25:46.146 | INFO | __main__:start_task_msg:246 - 获取到任务: {'id': '0fa1e938d85432b0d0cb15c9c74684af', 'project_id': '019be46add71719f90b48d128d961455', 'keyword_id': '019be46cc56d72a1b99dbcb085a50ecc', 'keyword': '跨年礼物送男生', 'brand': 'ps5', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:25:49', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:30', 'update_time': '2026-05-08 13:25:49', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:25:46.146 | INFO | __main__:process_task:210 - 开始处理任务: 跨年礼物送男生 - 0fa1e938d85432b0d0cb15c9c74684af +2026-05-08 13:25:59.198 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 13:25:59.198 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 13:25:59.198 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 13:25:59.198 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 13:25:59.199 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 13:25:59.563 | INFO | __main__:start_task_msg:244 - 获取到任务: {'id': '0f84c7bf7eab8a23b5fe555c71cd2194', 'project_id': '019d85a033637384993d3c4a5f3f5cac', 'keyword_id': '019da6b0abcb7353b4d8b4a355a8de01', 'keyword': '安徽上门护理服务平台', 'brand': '熙康云医院', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:26:03', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:32:26', 'update_time': '2026-05-08 13:26:03', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:25:59.563 | INFO | __main__:process_task:208 - 开始处理任务: 安徽上门护理服务平台 - 0f84c7bf7eab8a23b5fe555c71cd2194 +2026-05-08 13:25:59.872 | INFO | __main__:start_task_msg:244 - 获取到任务: {'id': '0f7d8318854963bb3dfe8ce5b55e3804', 'project_id': '01994dfeb91d7344ba52ba58507cfde9', 'keyword_id': '01994dfeb93d72ec88bb4c70298ce11d', 'keyword': '干皮面霜品牌推荐', 'brand': '欧莱雅', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:26:03', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:18', 'update_time': '2026-05-08 13:26:03', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:25:59.872 | INFO | __main__:process_task:208 - 开始处理任务: 干皮面霜品牌推荐 - 0f7d8318854963bb3dfe8ce5b55e3804 +2026-05-08 13:25:59.889 | INFO | __main__:start_task_msg:244 - 获取到任务: {'id': '0f7b5387138bf5721e861f21eaffe9dd', 'project_id': '019c2d57093771e0827c5e32bc94bf84', 'keyword_id': '019c2d584085711e91849654fe498963', 'keyword': 'SSL证书自动续期', 'brand': '天威诚信', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:26:03', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:51', 'update_time': '2026-05-08 13:26:03', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:25:59.889 | INFO | __main__:process_task:208 - 开始处理任务: SSL证书自动续期 - 0f7b5387138bf5721e861f21eaffe9dd +2026-05-08 13:25:59.892 | INFO | __main__:start_task_msg:244 - 获取到任务: {'id': '0f7b5387138bf5721e861f21eaffe9dd', 'project_id': '019c2d57093771e0827c5e32bc94bf84', 'keyword_id': '019c2d584085711e91849654fe498963', 'keyword': 'SSL证书自动续期', 'brand': '天威诚信', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:18', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:26:03', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:51', 'update_time': '2026-05-08 13:26:03', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:25:59.892 | INFO | __main__:process_task:208 - 开始处理任务: SSL证书自动续期 - 0f7b5387138bf5721e861f21eaffe9dd +2026-05-08 13:25:59.948 | INFO | __main__:start_task_msg:244 - 获取到任务: {'id': '0f7d8318854963bb3dfe8ce5b55e3804', 'project_id': '01994dfeb91d7344ba52ba58507cfde9', 'keyword_id': '01994dfeb93d72ec88bb4c70298ce11d', 'keyword': '干皮面霜品牌推荐', 'brand': '欧莱雅', 'platform_id': '6', 'gather_date': '2026-05-08', 'gather_time': '06:00', 'gather_filter': '2026-05-08 00:31:17', 'status': 2, 'retry_count': 0, 'screen_flag': 1, 'thinking': 1, 'is_deal': 1, 'is_init': 2, 'publish_time': '2026-05-08 13:26:03', 'screen_url': '', 'priority': 3, 'start_time': None, 'end_time': None, 'create_time': '2026-05-08 00:31:18', 'update_time': '2026-05-08 13:26:03', 'delete_time': 0, 'create_by': '', 'update_by': '', 'type': 1} +2026-05-08 13:25:59.948 | INFO | __main__:process_task:208 - 开始处理任务: 干皮面霜品牌推荐 - 0f7d8318854963bb3dfe8ce5b55e3804 +2026-05-08 13:58:44.180 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 13:58:44.650 | INFO | __main__:start_task_msg:240 - 没有任务数据,等待下一轮 +2026-05-08 13:58:46.187 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 13:58:46.546 | INFO | __main__:start_task_msg:240 - 没有任务数据,等待下一轮 +2026-05-08 13:58:48.194 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 13:58:48.524 | INFO | __main__:start_task_msg:240 - 没有任务数据,等待下一轮 +2026-05-08 13:58:50.199 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 13:58:50.489 | INFO | __main__:start_task_msg:240 - 没有任务数据,等待下一轮 +2026-05-08 13:58:52.206 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 13:58:52.518 | INFO | __main__:start_task_msg:240 - 没有任务数据,等待下一轮 +2026-05-08 14:01:55.356 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 14:01:55.901 | INFO | __main__:start_task_msg:240 - 没有任务数据,等待下一轮 +2026-05-08 14:05:45.938 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 14:05:46.612 | INFO | __main__:start_task_msg:240 - 没有任务数据,等待下一轮 +2026-05-08 14:05:47.948 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 14:05:48.295 | INFO | __main__:start_task_msg:240 - 没有任务数据,等待下一轮 +2026-05-08 14:05:49.953 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 14:05:50.173 | INFO | __main__:start_task_msg:240 - 没有任务数据,等待下一轮 +2026-05-08 14:05:51.967 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 14:05:52.292 | INFO | __main__:start_task_msg:240 - 没有任务数据,等待下一轮 +2026-05-08 14:05:53.972 | INFO | __main__:run:250 - 文心一言爬虫启动... +2026-05-08 14:05:54.219 | INFO | __main__:start_task_msg:240 - 没有任务数据,等待下一轮 diff --git a/wxyystart.py b/wxyystart.py new file mode 100644 index 0000000..4fddd63 --- /dev/null +++ b/wxyystart.py @@ -0,0 +1,270 @@ +import os +import json +import time +import threading +from datetime import datetime +from typing import Dict, List + +import requests +from loguru import logger + +from utlit.encrpty import encrypt_payload +from utlit.retry import retry + +# 配置日志 +cwd = os.path.dirname(os.path.abspath(__file__)) +logger.add(f"{cwd}/wxyy.log", + level="DEBUG", + rotation="00:00", + retention="3 days", + compression="zip", + backtrace=True) + +BASE = 'https://api.granking.com/api/third' +HOST = 'api.granking.com' + + +class ToolsLoad: + """工具类:处理任务获取、提交等操作""" + + @retry('获取文心一言任务', 5, time_sleep=10) + def get_task(self): + url = f"{BASE}/getTask?app_id=aa65700299848d6f21b969dbc9f6cf7c&secret=5588071d36f0bc61af849c311a03f2c4&platform_ids=6" + + resp = requests.get(url, timeout=(5, 20)) + resp.raise_for_status() + return resp.json() + + @retry('提交文心一言结果', 5, time_sleep=5) + def post_task(self, data): + url = f"{BASE}/submitProjectTask" + headers = { + "User-Agent": "Apifox/1.0.0", + "Content-Type": "application/json", + "Host": HOST + } + + resp = requests.post(url, headers=headers, json=data, timeout=(5, 300)) + resp.raise_for_status() + return resp.json() + + @retry('获取文心一言首页cookie', 0, time_sleep=5) + def index(self): + """获取文心一言首页cookie""" + url = "https://yiyan.baidu.com/" + headers = { + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36", + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "Accept-Language": "zh-CN,zh;q=0.9", + } + resp = requests.get(url, headers=headers, timeout=15, verify=False) + cookie_str = '; '.join([f'{k}={v}' for k, v in resp.cookies.items()]) + return cookie_str, resp.headers.get("Set-Cookie", "") + + @retry('文心一言对话接口', 3, time_sleep=5) + def conversation(self, Token, text, cookie_str): + """文心一言对话接口""" + url = "https://yiyan.baidu.com/eb/chat/conversation/v2" + headers = { + "Host": "yiyan.baidu.com", + "Device-Type": "pc", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36", + "Accept": "text/event-stream,application/json", + "Acs-Token": Token, + "Content-Type": "application/json", + "Referer": "https://yiyan.baidu.com/chat/", + "Cookie": cookie_str, + } + + post_data = { + "sign": Token, + "timestamp": int(time.time() * 1000), + "deviceType": "pc", + "text": text, + "sessionId": "", + "sessionName": text, + "type": 10, + "deepThoughtStatus": 2, + "model": "EB45T", + "parentChatId": "0", + "isNewYiyan": True + } + + answer_acc = "" + refs_raw: List[Dict[str, str]] = [] + + with requests.post(url, headers=headers, json=post_data, stream=True, timeout=300) as resp: + resp.raise_for_status() + resp.encoding = "utf-8" + + for raw in resp.iter_lines(decode_unicode=True): + if not raw or not raw.startswith("data:"): + continue + + data_str = raw[5:].strip() + if "已达文心大模型使用上限" in data_str or "用户访问被限制" in data_str: + return "", [] + + try: + ev = json.loads(data_str) + except Exception: + continue + + if ev.get("searchCitations"): + for c in ev.get("searchCitations", {}).get("list", []): + refs_raw.append({ + "title": c.get("title", ""), + "url": c.get("url", ""), + "name": c.get("site", ""), + "body": c.get("wild_abstract", ""), + "publishTime": c.get("date", "") + }) + + if isinstance(ev.get("data"), Dict): + content = ev.get("data").get("content") + if isinstance(content, str) and content: + answer_acc += content + + return answer_acc, refs_raw + + +class WenxinChatClient: + """文心一言聊天客户端""" + + def __init__(self): + self.tools = ToolsLoad() + + def generate_token(self, baiduid): + """生成Token""" + t = int(time.time() * 1000) + e = { + "d0": "ka0oitptemc1jfshcdsx", + "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)", + "baiduid": baiduid, + "platform": "Win32", + "clientTs": t, + "version": "1.4.0.3", + } + token_sign = encrypt_payload(e) + return f"1769396406334_{t}_{token_sign}" + + def chat(self, platform_id, keyword, brand, task_id): + """执行对话任务""" + # logger.info(f"开始处理任务: {keyword} - {task_id}") + + cookie_str, baiduid = self.tools.index() + if not cookie_str: + logger.error("获取cookie失败") + return False + + # 生成Token + Token = self.generate_token(baiduid) + + # 执行对话 + answer, refs = self.tools.conversation(Token, keyword, cookie_str) + + if not answer: + logger.warning(f"未获取到回答: {keyword}") + return False + + # 构造结果 + now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + result = { + "app_id": "aa65700299848d6f21b969dbc9f6cf7c", + "secret": "5588071d36f0bc61af849c311a03f2c4", + "platform_id": platform_id, + "platform_name": "文心一言", + "prompt": keyword, + "keyword": brand, + "answer": answer, + "search_result": refs, + "run_status": True, + "task_id": task_id, + "rank": 0, + "start_time": now, + "end_time": now, + "screenshot_url": "", + "words": [] + } + + return result + + +class Start: + """主启动类""" + + def __init__(self): + self.tools = ToolsLoad() + self.client = WenxinChatClient() + + @retry('处理文心一言任务', for_work=10, time_sleep=10) + def process_task(self, task): + """处理单个任务""" + task_id = task.get("id", "") + keyword = task.get("keyword", "") + platform_id = task.get("platform_id", "") + brand = task.get("brand", "") + + logger.info(f"开始处理任务: {keyword} - {task_id}") + + # 执行对话获取结果 + result = self.client.chat( + platform_id=platform_id, + keyword=keyword, + brand=brand, + task_id=task_id + ) + + if not result: + logger.warning(f"任务结果为空,重新处理: {keyword}") + return False + print(result) + # 提交结果 + post_resp = self.tools.post_task(result) + logger.info(f"任务 {task_id} 提交返回: {post_resp}") + + return result + + @retry('主运行窗口', for_work=3, time_sleep=5) + def start_task_msg(self): + """获取并处理任务""" + task_resp = self.tools.get_task() + + if not task_resp: + logger.info("get_task 未返回有效数据,等待后重试") + time.sleep(5) + return True + + tasks = task_resp.get("data", False) + if not tasks: + logger.info("没有任务数据,等待下一轮") + time.sleep(30) + return True + + logger.info(f"获取到任务: {tasks}") + + return self.process_task(tasks) + + def run(self): + """主循环""" + logger.info("文心一言爬虫启动...") + while True: + try: + self.start_task_msg() + except Exception as e: + logger.error(f"主循环异常: {e}") + time.sleep(10) + + +if __name__ == "__main__": + from threading import Thread + + ts = [] + for i in range(5): + t = Thread(target=Start().run) + ts.append(t) + t.start() + + time.sleep(2) + for t in ts: + t.join() diff --git a/yuanbao.2026-05-07_18-03-48_868163.log.zip b/yuanbao.2026-05-07_18-03-48_868163.log.zip new file mode 100644 index 0000000000000000000000000000000000000000..aa163101320517939d83f2addf36df2a046d9a89 GIT binary patch literal 424 zcmWIWW@Zs#U|`^2*fU{yjG+G1fL}mf2@?Z@8j!9mP0UM5%-1tAFf!9MFx53Mk2kc? zH89pSv52=YvoJI>*2~FHHwH>yHZ{0vY7lO)WrLByHlvLfHXCdXSrPc*OY!G$hDNE@ zA3yFKIkV?S#p*?uY_x@wm04q3m#;nRfBkIjy^YU~p1JC;zNY@xRwsY|{^_SV4qJHJ zCOZeq921?cA~y91kVrrNTx@ytOa{?cT6CL6~@J8#r4Wzsl&9Y!px$gtip{}0V=8+RRlFeWTU-Ta`*T&=v8dXe7M|GBd-|zZfT{Un0+nQbLzn<)Sr*173_a?SIapKCUD`(DYU23>*g7GF5t0xV|X1 Optional[Dict]: + """获取 Cookie""" + url = (f'{YuanbaoConfig.API_BASE}/api/third/getOneSpiderSession' + f'?platform_id={platform_id}' + f'&app_id={YuanbaoConfig.APP_ID}' + f'&secret={YuanbaoConfig.SECRET}' + f'&category={category}') + + headers = { + 'Authorization': 'Bearer ', + 'User-Agent': 'Apifox/1.0.0 (http://apifox.com)' + } + + response = requests.get(url, headers=headers, timeout=15).json() + # return {'cookie':'_qimei_uuid42=1a5070e1600100bd2ae7eba8b030a74b46a515b160; _qimei_i_3=71c55184975a52da90c2ad390a8775b1f6e8f1f2145902d7b0d97b0e25c0726f353766943989e2bd8891; _qimei_h38=59a9d3d32ae7eba8b030a74b0200000d91a507; _ga=GA1.1.1074115897.1778134923; hy_user=3cd3834f60454aae961686d99bd45549; hy_token=8tE8bq6InCxff5mUqQZfc9aGHP6NPD80Cr/k258SiLJ0SRKVmpnUylkLLyDfCVTFvK/7nB+MZYTNT4Uqlq+s6Yp7BfDrLLADcMuiFDyFIujvz9fR3gbpcIY5v+CNwvpTDNXFFk6lQbRa8O8SLtfTtbbQL8M9a2giBaeONY84++bOHuFV/DuvBdLlXCBJfPYpfGYtVchTW4YU9oQbqUyA0UWEpnNfUcETr42GANzVByxFBvxY4M2sjBD3IdxPdqggd8vPpdTTzqwWnHihA8iQfQg+3rnxhtxA3TVszDbGBWYYsuC0fFOlYLhmBawgBfRzQj/21JvGMmnkgM6qQHj5kWNernwXqQEUgtYZJ5RG5c78bygYn1crOJxIPdtVEII9a9A5+wnKpkvGVcSaFUF83VbLafUADz6R8dfb99iD3S++VdlzDuqgewwnpBM1CAQDtXkTJoHId89+buL6mHvElKwFERjDE6JTUF4upi/LkoYd0uLUXGUAZ3JONQQUjW/T8u21Vr5tIK4KE0mPZDuj8dex9AdvXuQc6El49TgsPJNzOsbITDF6/gg8+rrrmqTBaAE9ufahRNyJD5Y+X3LA325N/zbwdmi710P9FKNYr15V9lOGVFImjUJy5bMlXykmskxLs+T5KjvI8Q+bcApUhsPfFG4AcVnrzu0lplNCTCY=; hy_source=web; _qimei_fingerprint=aa9b6f323b563e55df336a26e51bc99e; _qimei_i_1=79e746879c0b598fc2c3fd320ad174b5a5bfaca3125803d3b38b7a582493206c6163639c39d8e7dcd1a4fae3; _ga_6P1G7NCG3R=GS2.1.s1778201894$o4$g1$t1778203143$j60$l0$h1300909130','id':'0'} + + if response.get("data") is None or response.get("data") == []: + logger.warning(f'没有获取到cookie: {response}') + return False + + logger.info(f'成功获取到cookie: {response.get("data", {}).get("id", "")}') + + return response.get("data") + + @retry('上传cookie状态', 5) + def update_session(self, session_id: str, reload_time: str, status: str = "4") -> str: + """更新 Session 状态""" + url = (f'{YuanbaoConfig.API_BASE}/api/third/updateSpiderSession' + f'?app_id={YuanbaoConfig.APP_ID}&secret={YuanbaoConfig.SECRET}') + + payload = { + "id": session_id, + "status": status, + "reload_time": reload_time + } + + headers = { + 'Authorization': 'Bearer ', + 'User-Agent': 'Apifox/1.0.0 (http://apifox.com)', + 'Content-Type': 'application/json' + } + + response = requests.post(url, json=payload, headers=headers, timeout=15) + logger.debug(f'更新session响应: {response.text}') + return response.text + + @retry('提交结果', 5) + def post_task(self, data: Dict) -> Dict: + """提交任务结果""" + url = f"{YuanbaoConfig.TASK_BASE}/api/third/submitProjectTask" + resp = requests.post(url, json=data, timeout=(5, 300)) + resp.raise_for_status() + return resp.json() + + @retry('获取task消息', 5) + def get_task(self) -> Dict: + """获取任务""" + url = (f"{YuanbaoConfig.TASK_BASE}/api/third/getTask" + f"?app_id={YuanbaoConfig.APP_ID}" + f"&secret={YuanbaoConfig.SECRET}" + f"&platform_ids=3") + resp = requests.get(url, timeout=(5, 20)) + resp.raise_for_status() + return resp.json() + + @retry('更新任务状态', 5) + def update_task_status(self, task_id: str, status: str) -> Dict: + """更新任务状态""" + url = (f"{YuanbaoConfig.TASK_BASE}/api/third/updateTask" + f"?app_id={YuanbaoConfig.APP_ID}&secret={YuanbaoConfig.SECRET}") + return requests.post(url, json={'task_id': task_id, 'status': status}, + headers={'Content-Type': 'application/json'}, timeout=15).json() + + +class YuanbaoSignClient: + """签名客户端:调用远程签名服务获取签名""" + + def __init__(self): + self.sign_url = YuanbaoConfig.SIGN_URL + self._cache = None + self._cache_ts = 0 + self.cache_ttl = 50 # 缓存有效期(秒) + + @retry('获取签名', 3, time_sleep=5) + def get_sign(self, force: bool = False) -> Dict: + """获取签名,带缓存""" + logger.info('正在获取新的签名...') + response = requests.post(self.sign_url, timeout=30) + response.raise_for_status() + + result = response.json() + + if result.get('code') != 0: + raise RuntimeError(f'签名服务返回错误: {result}') + + sign_data = result.get('data', {}) + + # 验证必要字段 + required_fields = ['X-Uskey', 'X-Bus-Params-Md5', 'X-Timestamp', 'hy92', 'hy93'] + for field in required_fields: + if field not in sign_data: + raise RuntimeError(f'签名数据缺少字段: {field}') + + self._cache = sign_data + self._cache_ts = time.time() + + logger.info(f'签名获取成功: X-Uskey={sign_data["X-Uskey"][:30]}...') + return sign_data + + +class YuanbaoChatClient: + """元宝聊天客户端""" + + def __init__(self, cookie: str, sign_data: Dict, h38: str): + self.cookie = cookie + self.sign_data = sign_data + self.h38 = h38 + + self.agent_id = YuanbaoConfig.AGENT_ID + + def _base_headers(self) -> Dict: + """构建基础请求头""" + devid = YuanbaoTaskProcessor.parse_cookies(self.cookie, '_qimei_uuid42') + return { + 'Host': 'yuanbao.tencent.com', + 'Connection': 'keep-alive', + 'X-device-id': devid, + 'X-Instance-ID': '5', + 'sec-ch-ua-mobile': '?0', + 'X-Language': 'zh-CN', + 'X-Requested-With': 'XMLHttpRequest', + 'X-AgentID': self.agent_id, + # 'x-commit-tag': 'd6af7421', + 'X-Platform': 'win', + 'X-Uskey': self.sign_data['X-Uskey'], + 'X-Bus-Params-Md5': self.sign_data['X-Bus-Params-Md5'], + 'X-Timestamp': str(self.sign_data['X-Timestamp']), + 'X-os_version': 'Windows(10)-Blink', + 'X-Source': 'web', + 'X-ybuitest': '0', + 'X-HY92': self.h38, + 'X-HY93': devid, + 'X-webdriver': '0', + 'X-HY106': '', + "x-webversion": "2.67.1", + 'User-Agent': ('Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' + 'AppleWebKit/537.36 (KHTML, like Gecko) ' + 'Chrome/144.0.0.0 Safari/537.36'), + 'Origin': 'https://yuanbao.tencent.com', + 'Sec-Fetch-Site': 'same-origin', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Dest': 'empty', + 'Accept-Encoding': 'gzip, deflate, br, zstd', + 'Accept-Language': 'zh-CN,zh;q=0.9', + 'Cookie': self.cookie, + } + + @retry('创建会话', 3, time_sleep=5) + def create_conversation(self) -> str: + """创建会话,返回会话ID""" + url = 'https://yuanbao.tencent.com/api/user/agent/conversation/create' + headers = self._base_headers() + user_id = YuanbaoTaskProcessor.parse_cookies(self.cookie, 'hy_user') + headers.update({ + 'Accept': 'application/json, text/plain, */*', + 'Content-Type': 'application/json', + 'X-ID': user_id, + 'T-UserID': user_id + }) + + resp = requests.post(url, json={'agentId': self.agent_id}, headers=headers, timeout=30) + resp.raise_for_status() + + result = resp.json() + conv_id = result.get('id', '') + + if not conv_id: + raise RuntimeError(f'创建会话失败: {result}') + + logger.info(f'创建会话成功: {conv_id}') + return conv_id + + @retry('流式对话', 3, time_sleep=5) + def stream_chat(self, conv_id: str, keyword: str) -> Tuple[str, List[Dict]]: + """流式对话,返回答案和引用""" + url = f'https://yuanbao.tencent.com/api/chat/{conv_id}' + headers = self._base_headers() + + headers.update({ + "x-agentid": f"{self.agent_id}/{conv_id}", + 'Content-Type': 'text/plain;charset=UTF-8', + 'Accept': '*/*', + 'X-Trid-Channel': 'undefined', + 'chat_version': 'v1', + 'x-web-ch-id': 'null', + 'Referer': f'https://yuanbao.tencent.com/chat/{self.agent_id}' + }) + + body = { + "model": "gpt_175B_0404", + "prompt": keyword, + "plugin": "Adaptive", + "displayPrompt": keyword, + "displayPromptType": 1, + "agentId": "naQivTmsDa", + "isTemporary": False, + "projectId": "", + "chatModelId": "hunyuan_gpt_175B_0404", + "supportFunctions": [ + "openAutoSearchSwitch", + "autoInternetSearch" + ], + "docOpenid": "", + "options": { + "imageIntention": { + "needIntentionModel": True, + "backendUpdateFlag": 2, + "intentionStatus": True + } + }, + "multimedia": [], + "supportHint": 1, + "chatModelExtInfo": "{\"modelId\":\"hunyuan_gpt_175B_0404\",\"subModelId\":\"\",\"supportFunctions\":{\"internetSearch\":\"\"},\"internetSearch\":\"autoInternetSearch\"}", + "applicationIdList": [], + "version": "v2", + "extReportParams": None, + "isAtomInput": False, + "offsetOfHour": 8, + "offsetOfMinute": 0 + } + body = json.dumps(body, ensure_ascii=False, separators=(',', ':')) + + answer_parts = [] + citations = [] + + with requests.post(url, data=body.encode('utf-8'), headers=headers, + stream=True, timeout=60) as r: + r.encoding = 'utf-8' + if r.status_code != 200: + raise RuntimeError(f'HTTP {r.status_code}: {r.text[:200]}') + + r.raw.decode_content = True + for line in r.iter_lines(decode_unicode=True): + if not line or not line.startswith('data:'): + continue + + raw = line[5:].strip() + if not raw.startswith('{'): + continue + + try: + obj = json.loads(raw) + except Exception: + continue + + if obj.get('type') == 'text': + answer_parts.append(obj.get('msg', '')) + elif obj.get('type') == 'searchGuid': + citations = obj.get('docs', []) + + answer = ''.join(answer_parts) + + if not answer: + raise RuntimeError('未获取到答案') + + logger.info(f'对话完成,答案长度: {len(answer)}') + return answer, citations + + +class YuanbaoTaskProcessor: + """元宝任务处理器""" + + def __init__(self): + self.tools = ToolsLoad() + self.sign_client = YuanbaoSignClient() + + def _parse_h38(self, cookie: str) -> str: + """从 Cookie 中解析 h38""" + cookie_dict = dict(item.strip().split('=', 1) + for item in cookie.split(';') if '=' in item) + return cookie_dict.get('_qimei_h38', '') + + @staticmethod + def parse_cookies(cookie: str, name) -> str: + """从 Cookie 中解析 h38""" + cookie_dict = dict(item.strip().split('=', 1) + for item in cookie.split(';') if '=' in item) + return cookie_dict.get(name, '') + + def _build_result(self, keyword: str, brand: str, platform_id: str, + task_id: str, answer: str, citations: List[Dict]) -> Dict: + """构建提交结果""" + now = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + pattern = r'citation:(\d+)' + cited = set(re.findall(pattern, answer)) + + search_results = [] + for idx, doc in enumerate(citations): + search_results.append({ + 'title': doc.get('title', ''), + 'url': doc.get('url', ''), + 'host_name': doc.get('web_site_name', ''), + 'body': doc.get('quote', ''), + 'publish_time': doc.get('publish_time', 0), + 'is_referenced': '1' if str(idx + 1) in cited else '0', + }) + + return { + 'app_id': YuanbaoConfig.APP_ID, + 'secret': YuanbaoConfig.SECRET, + 'platform_id': platform_id, + 'platform_name': YuanbaoConfig.PLATFORM_NAME, + 'prompt': keyword, + 'keyword': brand, + 'answer': answer, + 'search_result': search_results, + 'screenshot_file': '', + 'run_status': True, + 'task_id': task_id, + 'rank': 0, + 'start_time': now, + 'end_time': now, + 'screenshot_url': '', + 'words': [], + } + + @retry('处理元宝任务', for_work=10) + def process_task(self, task: Dict) -> bool: + """处理单个任务""" + task_id = task.get("id", "") + keyword = task.get("keyword", "") + platform_id = task.get("platform_id", "3") + brand = task.get("brand", "") + + logger.info(f"开始处理任务: {keyword} - {task_id}") + + session_id = "" + try: + # 1. 获取 Cookie + session = self.tools.get_cookie(platform_id='3', category='1') + cookie = session.get('cookie', '') + session_id = session.get('id', '') + + if not cookie: + logger.error('Cookie 获取失败') + return False + + # 2. 解析 h38 + h38 = self._parse_h38(cookie) + logger.debug(f'h38: {h38}') + + # 3. 获取签名 + sign_data = self.sign_client.get_sign() + + # 4. 创建聊天客户端 + chat_client = YuanbaoChatClient(cookie, sign_data, h38) + + # 5. 创建会话 + conv_id = chat_client.create_conversation() + + # 6. 流式对话 + answer, citations = chat_client.stream_chat(conv_id, keyword) + logger.info(f'答案预览: {answer[:100]}...') + + # 7. 构建结果并提交 + result = self._build_result(keyword, brand, platform_id, task_id, answer, citations) + logger.debug(f'提交结果: {json.dumps(result, ensure_ascii=False)[:200]}') + + post_resp = self.tools.post_task(result) + logger.info(f'任务 {task_id} 提交返回: {post_resp}') + + return True + + except Exception as e: + logger.error(f'任务处理异常: {e}') + if task_id: + self.tools.update_task_status(task_id, '4') + if session_id: + self.tools.update_session(session_id, '', status='4') + raise + + @retry('主运行窗口', for_work=3) + def start_task_msg(self) -> bool: + """获取并处理任务""" + task_resp = self.tools.get_task() + logger.info(f'获取任务响应: {task_resp}') + + if not task_resp: + logger.info("get_task 未返回有效数据,等待后重试") + time.sleep(5) + return True + + task_data = task_resp.get("data") + if not task_data: + logger.info("没有任务数据,等待下一轮") + time.sleep(random.uniform(30, 60)) + return True + + return self.process_task(task_data) + + def run(self): + """主循环""" + logger.info('元宝爬虫启动...') + while True: + try: + self.start_task_msg() + except Exception as e: + logger.error(f'主循环异常: {e}') + time.sleep(10) + + +if __name__ == '__main__': + YuanbaoTaskProcessor().run()