瀏覽代碼

填充collect_config_info字段数值

feelsocode 2 天之前
父節點
當前提交
0535f99571
共有 4 個文件被更改,包括 194 次插入6 次删除
  1. 1 0
      .idea/workspace.xml
  2. 172 0
      logs/pdd_new2_2026-04-29.log
  3. 二進制
      pdd1/__pycache__/pdd_new2.cpython-313.pyc
  4. 21 6
      pdd1/pdd_new2.py

+ 1 - 0
.idea/workspace.xml

@@ -5,6 +5,7 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="ff35c8dd-dae0-4980-b102-1ac3ac1f38ed" name="更改" comment="">
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/pdd1/pdd_new2.py" beforeDir="false" afterPath="$PROJECT_DIR$/pdd1/pdd_new2.py" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />

+ 172 - 0
logs/pdd_new2_2026-04-29.log

@@ -0,0 +1,172 @@
+2026-04-29 11:20:03,553 - INFO - PDD 调度器启动,轮询间隔 600 秒
+2026-04-29 11:20:03,627 - INFO - 当前没有待执行任务
+2026-04-29 11:20:20,303 - INFO - PDD 调度器启动,轮询间隔 600 秒
+2026-04-29 11:20:20,436 - INFO - 当前没有待执行任务
+2026-04-29 11:22:46,590 - INFO - PDD 调度器启动,轮询间隔 600 秒
+2026-04-29 11:22:47,406 - INFO - 任务 1343 对应设备 3 当前不空闲,跳过本轮
+2026-04-29 11:23:24,913 - INFO - PDD 调度器启动,轮询间隔 600 秒
+2026-04-29 11:23:25,126 - INFO - [任务 1343] 开始执行,设备: UCQGF6CQFMU8WKHI
+2026-04-29 11:23:25,126 - INFO - [任务 1343] 已分发到设备 UCQGF6CQFMU8WKHI
+2026-04-29 11:23:25,127 - INFO - {'task_id': 1343, 'equipment_id': 7, 'enterprise_id': 8, 'platform': '3', 'title_key': '尪痹胶囊', 'spec_list': '15*2', 'brand': '999', 'search_key': '999尪痹胶囊', 'save_search_key': '999尪痹胶囊', 'start_page': 1, 'end_page': 600, 'max_counts_limit': 36000, 'collect_config_info': '{"sampling_cycle": 1, "sampling_start_time": 0, "sampling_end_time": 0}', 'sort': '升序', 'device_id': 'UCQGF6CQFMU8WKHI', 'task_row': (1343, 3287, 7, 8, '3', '尪痹胶囊', '15*2', '999', '', 1, 1, 0, 0, 1, 600, 36000, 0, 600, 1777432802, 1777432802, 1)}
+2026-04-29 11:23:35,542 - INFO - UCQGF6CQFMU8WKHI 连接错误: device UCQGF6CQFMU8WKHI not online
+2026-04-29 11:23:35,542 - INFO - 任务执行异常: device UCQGF6CQFMU8WKHI not online
+2026-04-29 11:23:35,542 - ERROR - [任务 1343] 执行异常,设备: UCQGF6CQFMU8WKHI,错误: device UCQGF6CQFMU8WKHI not online
+Traceback (most recent call last):
+  File "C:\Users\datai\Desktop\PDD\pdd1\pdd_new2.py", line 2133, in connect_devices
+    self.d = u2.connect_usb(device_id)
+             ~~~~~~~~~~~~~~^^^^^^^^^^^
+  File "C:\Users\datai\Desktop\Auto\.venv\Lib\site-packages\uiautomator2\__init__.py", line 963, in connect_usb
+    return Device(serial)
+  File "C:\Users\datai\Desktop\Auto\.venv\Lib\site-packages\uiautomator2\base.py", line 36, in __init__
+    self._dev = self._wait_for_device()
+                ~~~~~~~~~~~~~~~~~~~~~^^
+  File "C:\Users\datai\Desktop\Auto\.venv\Lib\site-packages\uiautomator2\base.py", line 79, in _wait_for_device
+    raise ConnectError(f"device {self._serial} not online")
+uiautomator2.exceptions.ConnectError: device UCQGF6CQFMU8WKHI not online
+
+During handling of the above exception, another exception occurred:
+
+Traceback (most recent call last):
+  File "C:\Users\datai\Desktop\PDD\pdd1\pdd_new2.py", line 685, in run_task_worker
+    completed_normally = pdd.main(device_id, 1, 0)
+  File "C:\Users\datai\Desktop\PDD\pdd1\pdd_new2.py", line 2745, in main
+    self.connect_devices(device_id)
+    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
+  File "C:\Users\datai\Desktop\PDD\pdd1\pdd_new2.py", line 2141, in connect_devices
+    raise Exception(e)
+Exception: device UCQGF6CQFMU8WKHI not online
+2026-04-29 11:23:36,272 - INFO - ensure_home_before_task_end: 拼多多不在前台,先拉起APP
+2026-04-29 11:23:36,272 - INFO - ensure_home_before_task_end: 执行异常: 'PDD' object has no attribute 'd'
+2026-04-29 11:25:14,484 - INFO - PDD 调度器启动,轮询间隔 600 秒
+2026-04-29 11:25:14,644 - INFO - [任务 1343] 开始执行,设备: UCQGF6CQFMU8WKHI
+2026-04-29 11:25:14,644 - INFO - [任务 1343] 已分发到设备 UCQGF6CQFMU8WKHI
+2026-04-29 11:25:14,644 - INFO - {'task_id': 1343, 'equipment_id': 7, 'enterprise_id': 8, 'platform': '3', 'title_key': '尪痹胶囊', 'spec_list': '15*2', 'brand': '999', 'search_key': '999尪痹胶囊', 'save_search_key': '999尪痹胶囊', 'start_page': 1, 'end_page': 600, 'max_counts_limit': 36000, 'collect_config_info': '{"sampling_cycle": 1, "sampling_start_time": 0, "sampling_end_time": 0}', 'sort': '升序', 'device_id': 'UCQGF6CQFMU8WKHI', 'task_row': (1343, 3287, 7, 8, '3', '尪痹胶囊', '15*2', '999', '', 1, 1, 0, 0, 1, 600, 36000, 0, 600, 1777432802, 1777432802, 1)}
+2026-04-29 11:25:25,065 - INFO - UCQGF6CQFMU8WKHI 连接错误: device UCQGF6CQFMU8WKHI not online
+2026-04-29 11:25:25,065 - INFO - 任务执行异常: device UCQGF6CQFMU8WKHI not online
+2026-04-29 11:25:25,065 - ERROR - [任务 1343] 执行异常,设备: UCQGF6CQFMU8WKHI,错误: device UCQGF6CQFMU8WKHI not online
+Traceback (most recent call last):
+  File "C:\Users\datai\Desktop\PDD\pdd1\pdd_new2.py", line 2133, in connect_devices
+    self.d = u2.connect_usb(device_id)
+             ~~~~~~~~~~~~~~^^^^^^^^^^^
+  File "C:\Users\datai\Desktop\Auto\.venv\Lib\site-packages\uiautomator2\__init__.py", line 963, in connect_usb
+    return Device(serial)
+  File "C:\Users\datai\Desktop\Auto\.venv\Lib\site-packages\uiautomator2\base.py", line 36, in __init__
+    self._dev = self._wait_for_device()
+                ~~~~~~~~~~~~~~~~~~~~~^^
+  File "C:\Users\datai\Desktop\Auto\.venv\Lib\site-packages\uiautomator2\base.py", line 79, in _wait_for_device
+    raise ConnectError(f"device {self._serial} not online")
+uiautomator2.exceptions.ConnectError: device UCQGF6CQFMU8WKHI not online
+
+During handling of the above exception, another exception occurred:
+
+Traceback (most recent call last):
+  File "C:\Users\datai\Desktop\PDD\pdd1\pdd_new2.py", line 685, in run_task_worker
+    completed_normally = pdd.main(device_id, 1, 0)
+  File "C:\Users\datai\Desktop\PDD\pdd1\pdd_new2.py", line 2745, in main
+    self.connect_devices(device_id)
+    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
+  File "C:\Users\datai\Desktop\PDD\pdd1\pdd_new2.py", line 2141, in connect_devices
+    raise Exception(e)
+Exception: device UCQGF6CQFMU8WKHI not online
+2026-04-29 11:25:25,634 - INFO - ensure_home_before_task_end: 拼多多不在前台,先拉起APP
+2026-04-29 11:25:25,634 - INFO - ensure_home_before_task_end: 执行异常: 'PDD' object has no attribute 'd'
+2026-04-29 11:46:06,826 - INFO - PDD 调度器启动,轮询间隔 600 秒
+2026-04-29 11:46:06,978 - INFO - [任务 1343] 开始执行,设备: UCQGF6CQFMU8WKHI
+2026-04-29 11:46:06,978 - INFO - [任务 1343] 已分发到设备 UCQGF6CQFMU8WKHI
+2026-04-29 11:46:06,978 - INFO - {'task_id': 1343, 'equipment_id': 7, 'enterprise_id': 8, 'platform': '3', 'title_key': '感冒灵颗粒', 'spec_list': '10g*9袋', 'brand': '999', 'search_key': '999感冒灵颗粒', 'save_search_key': '999感冒灵颗粒', 'start_page': 1, 'end_page': 600, 'max_counts_limit': 36000, 'collect_config_info': '{"sampling_cycle": 1, "sampling_start_time": 0, "sampling_end_time": 0}', 'sort': '升序', 'device_id': 'UCQGF6CQFMU8WKHI', 'task_row': (1343, 3287, 7, 8, '3', '感冒灵颗粒', '10g*9袋', '999', '', 1, 1, 0, 0, 1, 600, 36000, 0, 600, 1777432802, 1777432802, 1)}
+2026-04-29 11:46:12,497 - INFO - [2026-04-29 11:46:06]连接到设备:UCQGF6CQFMU8WKHI
+2026-04-29 11:46:13,973 - INFO - foreground check -> package=com.xunmeng.pinduoduo, activity=.activity.NewPageActivity, screen_on=True
+2026-04-29 11:46:14,440 - INFO - 当前在拼多多可操作页面,执行统一入口准备(回主页面+点搜索框)
+2026-04-29 11:46:19,711 - INFO - prepare_entry: 回到主页面结果=True
+2026-04-29 11:46:23,726 - INFO - prepare_entry: 搜索框定位结果=True
+2026-04-29 11:46:50,361 - INFO - {'collect_task_allocate_id': 1343, 'statr_page': 1, 'end_page': '', 'status': 2, 'finish_status': 0, 'start_time': 1777434410, 'end_time': ''}
+2026-04-29 11:46:50,683 - INFO - {"code":"success","msg":"成功","data":[]}
+2026-04-29 11:46:50,684 - INFO - 第1页
+2026-04-29 11:46:51,188 - INFO - 数量 0
+2026-04-29 11:46:51,279 - INFO - 开始滑入下一页
+2026-04-29 11:46:53,665 - INFO - 第2页
+2026-04-29 11:52:17,816 - INFO - PDD 调度器启动,轮询间隔 600 秒
+2026-04-29 11:52:17,983 - INFO - [任务 1343] 开始执行,设备: UCQGF6CQFMU8WKHI
+2026-04-29 11:52:17,983 - INFO - [任务 1343] 已分发到设备 UCQGF6CQFMU8WKHI
+2026-04-29 11:52:17,983 - INFO - {'task_id': 1343, 'equipment_id': 7, 'enterprise_id': 8, 'platform': '3', 'title_key': '感冒灵颗粒', 'spec_list': '10g*9袋', 'brand': '999', 'search_key': '999感冒灵颗粒', 'save_search_key': '999感冒灵颗粒', 'start_page': 0, 'end_page': 600, 'max_counts_limit': 36000, 'collect_config_info': '{"sampling_cycle": 1, "sampling_start_time": 0, "sampling_end_time": 0}', 'sort': '升序', 'device_id': 'UCQGF6CQFMU8WKHI', 'task_row': (1343, 3287, 7, 8, '3', '感冒灵颗粒', '10g*9袋', '999', '', 1, 1, 0, 0, 0, 600, 36000, 0, 600, 1777432802, 1777432802, 1)}
+2026-04-29 11:52:22,524 - INFO - [2026-04-29 11:52:17]连接到设备:UCQGF6CQFMU8WKHI
+2026-04-29 11:52:23,984 - INFO - foreground check -> package=com.xunmeng.pinduoduo, activity=.activity.NewPageActivity, screen_on=True
+2026-04-29 11:52:27,163 - INFO - package 命中拼多多,但页面锚点不可见,按后台处理并触发重启
+2026-04-29 11:52:27,163 - INFO - 当前不在拼多多可操作页面,先重启,再执行统一入口准备
+2026-04-29 11:52:47,519 - INFO - prepare_entry: 回到主页面结果=True
+2026-04-29 11:52:52,267 - INFO - prepare_entry: 搜索框定位结果=True
+2026-04-29 11:53:14,904 - INFO - {'collect_task_allocate_id': 1343, 'statr_page': 0, 'end_page': '', 'status': 2, 'finish_status': 0, 'start_time': 1777434794, 'end_time': ''}
+2026-04-29 11:53:15,127 - INFO - {"code":"success","msg":"成功","data":[]}
+2026-04-29 11:53:15,127 - INFO - 第0页
+2026-04-29 11:53:15,544 - INFO - 数量 6
+2026-04-29 11:53:15,561 - INFO - 1 {'index': 4, 'text': '', 'resourceId': '', 'checkable': False, 'checked': False, 'clickable': True, 'enabled': True, 'focusable': True, 'focused': False, 'scrollable': False, 'longClickable': True, 'password': False, 'selected': False, 'visibleToUser': True, 'drawingOrder': '5', 'hint': '', 'displayId': '0', 'childCount': 1, 'className': 'android.widget.FrameLayout', 'bounds': {'left': 0, 'top': 330, 'right': 357, 'bottom': 838}, 'packageName': 'com.xunmeng.pinduoduo', 'contentDescription': '', 'resourceName': ''}
+2026-04-29 11:53:26,221 - INFO - xpath2--text1=已选择: 复盛公感冒灵】1盒体验装
+2026-04-29 11:53:27,004 - INFO - select_xpath_2--price_str-2=¥9.88
+2026-04-29 11:53:27,004 - INFO - 获取到价格:9.88
+2026-04-29 11:53:27,004 - INFO - ext=已选择: 复盛公感冒灵】1盒体验装
+2026-04-29 11:53:28,392 - INFO - is_position_new=False
+2026-04-29 11:53:30,495 - INFO - 开始提取标题
+2026-04-29 11:53:32,432 - INFO - 提取到标题:【999】感冒灵颗粒9袋解热镇痛感冒引起的头痛发热鼻塞流涕咽痛
+2026-04-29 11:53:32,449 - INFO - 当前商品名称:【999】感冒灵颗粒9袋解热镇痛感冒引起的头痛发热鼻塞流涕咽痛 不包含['10g*9袋']品规
+2026-04-29 11:53:34,918 - INFO - is_position_new=False
+2026-04-29 11:53:38,427 - INFO - is_position_new=False
+2026-04-29 11:53:38,427 - INFO - 回退到列表页 True
+2026-04-29 11:53:39,428 - INFO - 2 {'index': 5, 'text': '', 'resourceId': '', 'checkable': False, 'checked': False, 'clickable': True, 'enabled': True, 'focusable': True, 'focused': False, 'scrollable': False, 'longClickable': True, 'password': False, 'selected': False, 'visibleToUser': True, 'drawingOrder': '6', 'hint': '', 'displayId': '0', 'childCount': 1, 'className': 'android.widget.FrameLayout', 'bounds': {'left': 363, 'top': 330, 'right': 720, 'bottom': 838}, 'packageName': 'com.xunmeng.pinduoduo', 'contentDescription': '', 'resourceName': ''}
+2026-04-29 11:53:49,417 - INFO - xpath2--text1=已选择: 一盒5袋
+2026-04-29 11:53:49,854 - INFO - select_xpath_2--price_str-2=¥12.1
+2026-04-29 11:53:49,854 - INFO - 获取到价格:12.1
+2026-04-29 11:53:49,854 - INFO - ext=已选择: 一盒5袋
+2026-04-29 11:53:50,962 - INFO - is_position_new=False
+2026-04-29 11:53:53,050 - INFO - 开始提取标题
+2026-04-29 11:53:55,367 - INFO - 提取到标题:【999】 感冒灵颗粒 10g*9袋/盒 三九感冒灵颗粒解热镇痛用于病毒性感冒头痛发热鼻塞流涕咽痛正品
+2026-04-29 11:53:55,368 - INFO - 开始获取商品链接
+2026-04-29 11:53:55,829 - INFO - True
+2026-04-29 11:53:56,262 - INFO - True
+2026-04-29 11:53:56,784 - INFO - True
+2026-04-29 11:53:57,141 - INFO - True
+2026-04-29 11:53:57,543 - INFO - True
+2026-04-29 11:53:58,009 - INFO - True
+2026-04-29 11:53:58,601 - INFO - 1-进入分享点点点
+2026-04-29 11:54:00,426 - INFO - 开始滑动
+2026-04-29 11:54:03,345 - INFO - Clipboard content:https://mobile.yangkeduo.com/goods2.html?ps=5sKSbSCGho
+2026-04-29 11:54:03,891 - INFO - 1-商品链接:https://mobile.yangkeduo.com/goods2.html?ps=5sKSbSCGho
+2026-04-29 11:54:18,220 - INFO - 可以开始获取店铺名
+2026-04-29 11:54:18,335 - INFO - 开始获取店铺名
+2026-04-29 11:54:21,329 - INFO - 1-获取到店铺名:东华桂花健康医药大药房旗舰店
+2026-04-29 11:54:21,532 - INFO - 店铺数据不存在,插入pdd_shop_info_middle店铺表
+2026-04-29 11:54:21,532 - INFO - 保存店铺数据到店铺数据库:{'shop': '东华桂花健康医药大药房旗舰店', 'store_url': 'https://mobile.yangkeduo.com/goods2.html?ps=5sKSbSCGho', 'scrape_date': '2026/04/29', 'platform': '拼多多', 'create_time': '2026-04-29 11:54:21', 'update_time': '2026-04-29 11:54:21'}
+2026-04-29 11:54:21,617 - INFO - 存入数据库成功
+2026-04-29 11:54:26,937 - INFO - 是否有说明书:True
+2026-04-29 11:54:26,957 - INFO - 已加载 city.json: C:\Users\datai\Desktop\PDD\pdd1\city.json
+2026-04-29 11:54:29,344 - INFO - 开始采集详情数据
+2026-04-29 11:54:39,368 - INFO - 当前说明书规格参数:{'品牌': '999', '药品通用名': '感冒灵颗粒', '药品规格': '10g*9袋/盒', '产品剂型': '颗粒剂', '使用剂量': '详见说明书。', '批准文号': '国药准字Z44021940', '药品分类': '非处方药', '有效期': '24月', '药品类别': '中药', '生产企业': '惠州市九惠制药股份有限公司', '用法': '口服', '剩余保质期': '6个月及以上'}
+2026-04-29 11:54:39,368 - INFO - 当前规格参数字典数据:{'有效期': '24月', '生产单位': '惠州市九惠制药股份有限公司', '批准文号': '国药准字Z44021940', '产品规格': '10g*9袋/盒'}
+2026-04-29 11:54:39,369 - INFO - 保存数据到数据库:{'enterprise_id': 8, 'platform_id': '3', 'platform_item_id': '', 'province_id': 0, 'city_id': 0, 'province_name': '', 'city_name': '', 'area_info': '', 'product_brand': '999', 'product_name': '【999】 感冒灵颗粒 10g*9袋/盒 三九感冒灵颗粒解热镇痛用于病毒性感冒头痛发热鼻塞流涕咽痛正品', 'product_specs': '10g*9袋/盒', 'search_name': '999感冒灵颗粒', 'collect_config_info': '{"sampling_cycle": 1, "sampling_start_time": 0, "sampling_end_time": 0}', 'one_box_price': 0, 'manufacture_date': '', 'expiry_date': '24月', 'manufacturer': '惠州市九惠制药股份有限公司', 'approval_number': '国药准字Z44021940', 'is_sold_out': 0, 'online_posting_count': 1, 'continuous_listing_count': 1, 'link_url': 'https://mobile.yangkeduo.com/goods2.html?ps=5sKSbSCGho', 'store_name': '东华桂花健康医药大药房旗舰店', 'store_url': '', 'shipment_province_id': 0, 'shipment_province_name': '', 'shipment_city_id': 0, 'shipment_city_name': '', 'company_name': '', 'qualification_number': '', 'scrape_date': '2026/04/29', 'min_price': 12.1, 'number': 0, 'sales': '', 'inventory': '', 'snapshot_url': '', 'insert_time': '2026-04-29 11:54:39', 'update_time': '2026-04-29 11:54:39'}
+2026-04-29 11:54:39,489 - INFO - 存入数据库成功,当前已采集 2 条
+2026-04-29 11:54:51,327 - INFO - is_position_new=False
+2026-04-29 11:54:51,327 - INFO - 第0次尝试退回到列表页
+2026-04-29 11:55:04,059 - INFO - is_position_new=False
+2026-04-29 11:55:17,120 - INFO - is_position_new=False
+2026-04-29 11:55:17,121 - INFO - 第1次尝试退回到列表页
+2026-04-29 11:55:26,917 - INFO - is_position_new=False
+2026-04-29 11:55:31,195 - INFO - is_position_new=False
+2026-04-29 11:55:31,195 - INFO - 回退到列表页 True
+2026-04-29 11:55:32,196 - INFO - 3 {'index': 6, 'text': '', 'resourceId': '', 'checkable': False, 'checked': False, 'clickable': True, 'enabled': True, 'focusable': True, 'focused': False, 'scrollable': False, 'longClickable': True, 'password': False, 'selected': False, 'visibleToUser': True, 'drawingOrder': '7', 'hint': '', 'displayId': '0', 'childCount': 1, 'className': 'android.widget.FrameLayout', 'bounds': {'left': 0, 'top': 844, 'right': 357, 'bottom': 1352}, 'packageName': 'com.xunmeng.pinduoduo', 'contentDescription': '', 'resourceName': ''}
+2026-04-29 11:55:42,234 - INFO - xpath2--text1=已选择: 【999感冒灵颗粒】1盒
+2026-04-29 11:55:42,787 - INFO - select_xpath_2--price_str-2=¥13.9
+2026-04-29 11:55:42,787 - INFO - 获取到价格:13.9
+2026-04-29 11:55:42,787 - INFO - ext=已选择: 【999感冒灵颗粒】1盒
+2026-04-29 11:55:44,416 - INFO - is_position_new=False
+2026-04-29 11:55:45,520 - INFO - 开始提取标题
+2026-04-29 11:55:47,777 - INFO - 提取到标题:【999】 感冒灵颗粒 10g*9袋/盒 解热镇痛 用于感冒引起的头痛,发热, 鼻塞, 流涕 ,咽痛等
+2026-04-29 11:55:47,778 - INFO - 开始获取商品链接
+2026-04-29 11:55:48,355 - INFO - True
+2026-04-29 11:55:48,956 - INFO - True
+2026-04-29 11:55:49,711 - INFO - True
+2026-04-29 11:55:50,322 - INFO - True
+2026-04-29 11:55:50,758 - INFO - True
+2026-04-29 11:55:51,293 - INFO - True
+2026-04-29 11:55:52,121 - INFO - 1-进入分享点点点
+2026-04-29 11:55:53,918 - INFO - 开始滑动
+2026-04-29 11:55:57,623 - INFO - Clipboard content:https://mobile.yangkeduo.com/goods1.html?ps=o8U0oKszj0
+2026-04-29 11:55:58,169 - INFO - 1-商品链接:https://mobile.yangkeduo.com/goods1.html?ps=o8U0oKszj0

二進制
pdd1/__pycache__/pdd_new2.cpython-313.pyc


+ 21 - 6
pdd1/pdd_new2.py

@@ -104,7 +104,7 @@ BRAND_ALIAS_MAP = {
 # 手动任务模式:
 # False -> 保持原有数据库取任务逻辑
 # True  -> 不从数据库取任务,直接使用 MANUAL_TASKS
-USE_MANUAL_TASKS = True
+USE_MANUAL_TASKS = False
 
 # 手动任务示例(按需修改,可配置多条)
 # 必填:search_key;device_id 不需要填写,手动模式会自动选择空闲 PDD 设备。
@@ -474,6 +474,7 @@ def fetch_manual_task_payloads():
             "start_page": parse_optional_int(task.get("start_page"), 0),
             "end_page": parse_optional_int(task.get("end_page"), None),
             "max_counts_limit": parse_optional_int(task.get("max_counts_limit"), DEFAULT_MAX_COUNTS_LIMIT),
+            "collect_config_info": task.get("collect_config_info", ""),
             "sort": task.get("sort", "默认"),
             "device_id": device_id,
             "task_row": None,
@@ -535,12 +536,20 @@ def fetch_idle_device_by_equipment_id(equipment_id):
 def build_task_payload(task_row, device_row):
     # 功能:把数据库原始任务行和设备行整理成线程入口可直接消费的任务上下文。
     # 返回:统一字段名的字典,避免后续线程逻辑继续依赖固定列下标。
-    start_page = parse_optional_int(task_row[10] if len(task_row) > 10 else None, 0)
-    end_page = parse_optional_int(task_row[11] if len(task_row) > 11 else None, 300)
+    sampling_cycle = parse_optional_int(task_row[10] if len(task_row) > 10 else None, 0)
+    sampling_start_time = parse_optional_int(task_row[11] if len(task_row) > 11 else None, 0)
+    sampling_end_time = parse_optional_int(task_row[12] if len(task_row) > 12 else None, 0)
+    start_page = parse_optional_int(task_row[13] if len(task_row) > 13 else None, 0)
+    end_page = parse_optional_int(task_row[14] if len(task_row) > 14 else None, 300)
     max_counts_limit = parse_optional_int(
-        task_row[12] if len(task_row) > 12 else None,
+        task_row[15] if len(task_row) > 15 else None,
         DEFAULT_MAX_COUNTS_LIMIT
     )
+    collect_config_info = json.dumps({
+        "sampling_cycle": sampling_cycle,
+        "sampling_start_time": sampling_start_time,
+        "sampling_end_time": sampling_end_time,
+    }, ensure_ascii=False)
 
     return {
         "task_id": task_row[0],
@@ -555,6 +564,7 @@ def build_task_payload(task_row, device_row):
         "start_page": start_page,
         "end_page": end_page,
         "max_counts_limit": max_counts_limit,
+        "collect_config_info": collect_config_info,
         "sort": "升序",
         "device_id": device_row[2],
         "task_row": task_row,
@@ -663,6 +673,7 @@ def run_task_worker(task_payload):
             start_page=task_payload.get("start_page"),
             end_page=task_payload.get("end_page"),
             max_counts_limit=task_payload.get("max_counts_limit"),
+            collect_config_info=task_payload.get("collect_config_info", ""),
             direct_shop_lookup=task_payload.get("direct_shop_lookup", False),
             sort=task_payload.get("sort"),
             platform=task_payload.get("platform"),
@@ -852,6 +863,7 @@ class PDD:
             start_page=0,
             end_page=None,
             max_counts_limit=None,
+            collect_config_info="",
             direct_shop_lookup=False,
             sort=None,
             platform = None,
@@ -890,6 +902,7 @@ class PDD:
         self.start_page = max(parse_optional_int(start_page, 0), 0)
         self.end_page = max(parse_optional_int(end_page, 0), 0)
         self.max_counts_limit = max_counts_limit
+        self.collect_config_info = collect_config_info or ""
         self.direct_shop_lookup = direct_shop_lookup
         self.unrelated_data = 0  # 无关数据数量
         self.device_id = device_id
@@ -1717,7 +1730,7 @@ class PDD:
                         INSERT INTO retrieve_scrape_data (
                             enterprise_id, platform_id, platform_item_id, province_id, city_id,
                             province_name, city_name, area_info, product_brand, product_name, product_specs, search_name,
-                            one_box_price, manufacture_date, expiry_date, manufacturer, approval_number,
+                            collect_config_info, one_box_price, manufacture_date, expiry_date, manufacturer, approval_number,
                             is_sold_out, online_posting_count, continuous_listing_count, link_url,
                             store_name, store_url, shipment_province_id, shipment_province_name,
                             shipment_city_id, shipment_city_name, company_name, qualification_number,
@@ -1725,7 +1738,7 @@ class PDD:
                         ) VALUES (
                             %s, %s, %s, %s, %s,
                             %s, %s, %s, %s, %s, %s, %s,
-                            %s, %s, %s, %s, %s,
+                            %s, %s, %s, %s, %s, %s,
                             %s, %s, %s, %s, 
                             %s, %s, %s, %s,
                             %s, %s, %s, %s,
@@ -1745,6 +1758,7 @@ class PDD:
                         data['product_name'],
                         data['product_specs'],
                         data['search_name'],
+                        data['collect_config_info'],
                         data['one_box_price'],
                         data['manufacture_date'],
                         data['expiry_date'],
@@ -2691,6 +2705,7 @@ class PDD:
             'product_name': title_info,
             'product_specs': specifications,
             'search_name': self.search_key,
+            'collect_config_info': self.collect_config_info,
             'one_box_price': one_box_price,
             'manufacture_date': manufacture_date,
             'expiry_date': expiry_date,