This commit is contained in:
HuangHai
2026-01-14 16:07:36 +08:00
parent cbbee0491e
commit 27a81f5ce2
2 changed files with 6 additions and 1 deletions

View File

@@ -244,6 +244,7 @@ class TeLaiDianCrawler(BaseCrawler):
template_jgxx = os.path.join(os.path.dirname(__file__), "Template", "jgxx.jpg")
template_qbsd = os.path.join(os.path.dirname(__file__), "Template", "qbsd.jpg")
entrance_point = None
entrance_source = None
max_search_rounds = 5
if os.path.exists(template_qbsd):
@@ -264,6 +265,7 @@ class TeLaiDianCrawler(BaseCrawler):
elif isinstance(match_res_qbsd, (list, tuple)) and len(match_res_qbsd) >= 2:
entrance_point = (match_res_qbsd[0], match_res_qbsd[1])
if entrance_point:
entrance_source = "qbsd"
logger.info(f"[详情页] 通过 qbsd.jpg 成功找到价格入口: {entrance_point}")
for round_idx in range(max_search_rounds):
@@ -289,6 +291,8 @@ class TeLaiDianCrawler(BaseCrawler):
entrance_point = (match_res["x"], match_res["y"])
elif isinstance(match_res, (list, tuple)) and len(match_res) >= 2:
entrance_point = (match_res[0], match_res[1])
if entrance_point and not entrance_source:
entrance_source = "jgxx"
if not entrance_point:
try:
@@ -306,6 +310,7 @@ class TeLaiDianCrawler(BaseCrawler):
if vy > int(h * (1 - BOTTOM_SAFE_EXCLUDE_RATIO)):
vy = int(h * (1 - BOTTOM_SAFE_EXCLUDE_RATIO))
entrance_point = (vx, vy)
entrance_source = entrance_source or "vlm"
logger.info(f"[详情页] VLM 成功找到价格入口: {entrance_point},原因: {vlm_res.get('reason')}")
if entrance_point:
@@ -330,7 +335,7 @@ class TeLaiDianCrawler(BaseCrawler):
click_x = ex
offset_y = int(h * 0.1)
click_y = min(h - 10, ey + offset_y)
logger.info(f"[详情页] 通过 jgxx.jpg 成功找到价格入口,模板中心: ({ex}, {ey}),调整后点击坐标: ({click_x}, {click_y}),即将进入电价页")
logger.info(f"[详情页] 使用 {entrance_source or '模板'} 价格入口坐标: ({ex}, {ey}),调整后点击坐标: ({click_x}, {click_y}),即将进入电价页")
d.click(click_x, click_y)
await asyncio.sleep(WAIT_DETAIL_PAGE_LOAD)