'commit'
This commit is contained in:
@@ -7,7 +7,7 @@ import json
|
||||
import cv2
|
||||
from Apps.TeLaiDian.Kit import (
|
||||
take_screenshot, get_image_content_md5, clean_station_name,
|
||||
setup_logger, detect_price_click_point_cv, read_image, save_image
|
||||
setup_logger, read_image, save_image
|
||||
)
|
||||
from Apps.TeLaiDian.ReadImageKit import ReadImageKit
|
||||
from Apps.TeLaiDian.Service import TeLaiDianService
|
||||
@@ -29,11 +29,6 @@ if project_root not in sys.path:
|
||||
# 初始化日志
|
||||
logger = setup_logger("TeLaiDianCrawler")
|
||||
|
||||
PRICE_TAB_X_NORM = 220
|
||||
PRICE_TAB_Y_NORM = 130
|
||||
PRICE_ENTRY_X_NORM = 230
|
||||
PRICE_ENTRY_Y_NORM = 380
|
||||
|
||||
class TeLaiDianCrawler(BaseCrawler):
|
||||
def __init__(self, service=None):
|
||||
super().__init__(service or TeLaiDianService())
|
||||
@@ -241,7 +236,7 @@ class TeLaiDianCrawler(BaseCrawler):
|
||||
await self.crawl_detail_logic(d, station)
|
||||
|
||||
# 标记为已处理
|
||||
await self.redis_kit.set_data(redis_key, "1", ex=REDIS_STATION_EXPIRE)
|
||||
await self.redis_kit.set_data(redis_key, "1", expire=REDIS_STATION_EXPIRE)
|
||||
|
||||
d.press("back")
|
||||
await asyncio.sleep(WAIT_BACK_TO_LIST)
|
||||
@@ -358,24 +353,6 @@ class TeLaiDianCrawler(BaseCrawler):
|
||||
price_tab_screen = found_entry["screen"]
|
||||
p = found_entry["point"]
|
||||
|
||||
# 1. 先点击顶部“价格”标签 (确保切到价格页,虽然滚动前可能已经点击,但这里做双保险)
|
||||
# 先 OCR 找一次标签
|
||||
tab_data = await self.read_image_kit.find_price_tab_ocr(price_tab_screen)
|
||||
tab_x, tab_y = None, None
|
||||
if tab_data.get("found"):
|
||||
p_tab = tab_data["point"]
|
||||
tab_x, tab_y = int(p_tab[0] * w / 1000), int(p_tab[1] * h / 1000)
|
||||
logger.info(f"[详情页] 点击顶部价格标签: ({tab_x}, {tab_y})")
|
||||
d.click(tab_x, tab_y)
|
||||
await asyncio.sleep(1.0)
|
||||
else:
|
||||
# 按照用户要求:找不到文字时输出日志、截图并停止程序
|
||||
fail_screen = take_screenshot(d, f"tld_ocr_tab_fail_{int(time.time())}.jpg")
|
||||
logger.error(f"❌ [OCR失败] 在页面中未找到‘价格’标签文字!")
|
||||
logger.error(f"❌ [OCR失败] 最终截图已保存至: {fail_screen}")
|
||||
logger.error("❌ [OCR失败] 程序将停止运行,请检查页面内容或识别逻辑。")
|
||||
sys.exit(1)
|
||||
|
||||
# 2. 点击“全部时段”入口
|
||||
entry_x = int(p[0] * w / 1000)
|
||||
entry_y = int(p[1] * h / 1000)
|
||||
|
||||
Reference in New Issue
Block a user