Prechádzať zdrojové kódy

fix(spider): 修复爬虫定时任务调度和请求延迟问题

- 更新接口版本号,解决服务端升级后响应为空的问题
- 启用随机延迟防止过载,避免对目标服务器造成压力
- 取消立即运行任务的注释,使任务可立即执行
- 调整定时任务时间为每日06:01执行
- 增加对响应内容的调试打印注释,便利开发调试
charley 1 mesiac pred
rodič
commit
45d6d97263
1 zmenil súbory, kde vykonal 7 pridanie a 4 odobranie
  1. 7 4
      zc_spider/zc_new_daily_spider.py

+ 7 - 4
zc_spider/zc_new_daily_spider.py

@@ -2,6 +2,7 @@
 # Author : Charley
 # Python : 3.10.8
 # Date   : 2026/2/27 11:22
+import random
 import time
 import inspect
 import requests
@@ -34,7 +35,7 @@ headers = {
     # 2026/08/06 版本失效修复:服务端升级后按 version 头做灰度校验,旧值 1.9.9.82537
     # 会被静默降级为返回空 rows(HTTP 200 不报错、数据悄悄变空)。改为抓包实测的当前
     # 真实版本 1.3.09 后 getActList / getActEndList 均恢复正常返回。
-    "version": "1.3.09"
+    "version": "1.3.14"
 }
 
 
@@ -106,10 +107,12 @@ def make_encrypted_post_request(log, url: str, request_data: dict, extra_headers
     if response.status_code == 200:
         response_json = response.json()
         # log.debug(f"Raw response: {response_json}")
+        # print(response_json)
 
         if 'data' in response_json:
             decrypted = CryptoHelper.decrypt_response_data(response_json)
             # log.debug(f"Decrypted response: {decrypted}")
+            # print(decrypted)
             return decrypted
         return response_json
     else:
@@ -504,7 +507,7 @@ def get_sold_list(log, shop_id, token, sql_pool, shop_name):
 
     while page_num <= max_pages:
         result = get_sold_single_page(log, shop_id, page_num)
-        # time.sleep(random.uniform(0.5, 1))  # 添加随机延迟,防止对目标服务器造成过大负载
+        time.sleep(random.uniform(0.5, 1))  # 添加随机延迟,防止对目标服务器造成过大负载
         # print(result)
         if result is None:
             log.error(f"第 {page_num} 页请求失败,停止翻页")
@@ -672,10 +675,10 @@ def schedule_task():
     爬虫模块 定时任务 的启动文件
     """
     # 立即运行一次任务
-    # zc_main(log=logger)
+    zc_main(log=logger)
 
     # 设置定时任务
-    schedule.every().day.at("00:01").do(zc_main, log=logger)
+    schedule.every().day.at("06:01").do(zc_main, log=logger)
 
     while True:
         schedule.run_pending()