v92-v105 多国适配 + 模板导出增强 + 生图可靠性优化

- 新增韩国(KR)适配:countries/pinterest 种子词、K-pop 提示词、UI 国家列表
- 爬虫跨运行持久化已采集 URL(.collected_urls.json),同关键词重复搜索采新图
- 模板导出增强:SPU 商品属性列名前缀剥离匹配、尺码下拉框 INDIRECT 动态引用、
  SPU 字段映射(袖长/门襟/胸垫等)、季节/印花图案女装映射、建议售价统一必填、
  SKU 分类/数量/单位直接填默认值
- 自定义模式:多模态提示词独立(custom_analyze_*)、生图提示词模板可配置
- Pinterest:空选品守卫、连续空分析保护(max_empty_analyze)、flat_prompt 配置覆盖
- 生图可靠性:开始/完成进度日志、异步任务轮询超时 60s→300s
This commit is contained in:
2026-08-31 18:35:51 +08:00
parent 71a48e4ed5
commit 3dc594cf57
29 changed files with 1369 additions and 321 deletions
+11 -1
View File
@@ -437,7 +437,15 @@ async def _ensure_logged_in(page: Page, search_url: str, login_wait: bool = Fals
async def scrape(keyword: str, count: int, headless: bool = False,
proxy: str | None = None,
cdp_url: str | None = None,
login_wait: bool = False) -> set[str]:
login_wait: bool = False,
known_urls: set[str] | None = None) -> set[str]:
"""按关键词滚动采集 Pinterest 图片 URL。
known_urls:该关键词历史已采集 URL 集合(跨运行持久化,见 scraper.scrape_pinterest)。
滚动时命中 known_urls 的旧图直接跳过(不计入 count),从而在重复搜索同一关键词时
自动往下拉采集新图,而不是反复下载顶部旧图。
"""
known = set(known_urls or [])
imgs_url: set[str] = set()
async with async_playwright() as p:
if cdp_url:
@@ -506,6 +514,8 @@ async def scrape(keyword: str, count: int, headless: bool = False,
for s in srcset.split(",")
]
max_url = max(candidates, key=lambda x: x[1])[0]
if max_url in known:
continue # 已采集过的旧图 → 跳过(不计入 count,驱动往下拉)
imgs_url.add(max_url)
# 模拟人工: 鼠标平滑移动到随机位置 + 分段连续滚动,