feat(crawler): expand pixelrag marketplace automation
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
This commit is contained in:
@@ -21,6 +21,12 @@ const DEFAULT_MAX_TILES = 80;
|
||||
const ALLOWED_PLATFORM_HOSTS = {
|
||||
momo: new Set(['m.momoshop.com.tw', 'www.momoshop.com.tw']),
|
||||
pchome: new Set(['24h.pchome.com.tw', 'ecshweb.pchome.com.tw', 'ecapi-cdn.pchome.com.tw']),
|
||||
shopee_tw: new Set(['shopee.tw', 'mall.shopee.tw']),
|
||||
coupang_tw: new Set(['www.tw.coupang.com', 'tw.coupang.com']),
|
||||
yahoo_shopping_tw: new Set(['tw.buy.yahoo.com']),
|
||||
etmall_tw: new Set(['www.etmall.com.tw', 'etmall.com.tw']),
|
||||
friday_tw: new Set(['shopping.friday.tw', 'ec-m.shopping.friday.tw', 'ec-w.shopping.friday.tw']),
|
||||
rakuten_tw: new Set(['www.rakuten.com.tw', 'rakuten.com.tw']),
|
||||
market_intel: new Set(),
|
||||
external_market: new Set(),
|
||||
};
|
||||
|
||||
@@ -26,6 +26,12 @@ DEFAULT_MAX_TILES = 80
|
||||
ALLOWED_PLATFORM_HOSTS = {
|
||||
"momo": {"m.momoshop.com.tw", "www.momoshop.com.tw"},
|
||||
"pchome": {"24h.pchome.com.tw", "ecshweb.pchome.com.tw", "ecapi-cdn.pchome.com.tw"},
|
||||
"shopee_tw": {"shopee.tw", "mall.shopee.tw"},
|
||||
"coupang_tw": {"www.tw.coupang.com", "tw.coupang.com"},
|
||||
"yahoo_shopping_tw": {"tw.buy.yahoo.com"},
|
||||
"etmall_tw": {"www.etmall.com.tw", "etmall.com.tw"},
|
||||
"friday_tw": {"shopping.friday.tw", "ec-m.shopping.friday.tw", "ec-w.shopping.friday.tw"},
|
||||
"rakuten_tw": {"www.rakuten.com.tw", "rakuten.com.tw"},
|
||||
"market_intel": set(),
|
||||
"external_market": set(),
|
||||
}
|
||||
|
||||
@@ -15,6 +15,8 @@ if str(ROOT) not in sys.path:
|
||||
|
||||
from services.pixelrag_crawler_integration_service import ( # noqa: E402
|
||||
build_pixelrag_crawler_integration_assessment,
|
||||
build_pixelrag_ecommerce_expansion_plan,
|
||||
build_pixelrag_marketplace_search_manifest,
|
||||
build_pixelrag_visual_evidence_manifest,
|
||||
)
|
||||
|
||||
@@ -62,6 +64,12 @@ def main() -> int:
|
||||
help="覆寫 readiness 假設,用於模擬下一階段條件。",
|
||||
)
|
||||
parser.add_argument("--manifest-url", help="輸出單一 URL 的視覺證據 manifest。")
|
||||
parser.add_argument("--marketplace-keyword", help="依平台與關鍵字輸出多電商視覺搜尋 manifest。")
|
||||
parser.add_argument(
|
||||
"--ecommerce-expansion-plan",
|
||||
action="store_true",
|
||||
help="輸出 MOMO/PChome 以外的 PixelRAG 多電商擴充計畫。",
|
||||
)
|
||||
parser.add_argument("--crawler", default="crawler_diagnostics", help="manifest 來源 crawler 名稱。")
|
||||
parser.add_argument(
|
||||
"--trigger-reason",
|
||||
@@ -90,6 +98,43 @@ def main() -> int:
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.ecommerce_expansion_plan:
|
||||
payload = build_pixelrag_ecommerce_expansion_plan(
|
||||
target_platforms=tuple(args.platforms) if args.platforms else None,
|
||||
)
|
||||
print(json.dumps(payload, ensure_ascii=False, indent=2, sort_keys=True))
|
||||
return 0 if payload.get("success") else 1
|
||||
|
||||
if args.marketplace_keyword:
|
||||
platform = (args.platforms or ["shopee_tw"])[0]
|
||||
crawler = (
|
||||
"PixelRAGMarketplaceSearch.visual_fallback"
|
||||
if args.crawler == "crawler_diagnostics"
|
||||
else args.crawler
|
||||
)
|
||||
trigger_reason = (
|
||||
"marketplace_search_visual_scan"
|
||||
if args.trigger_reason == "parser_empty_or_low_confidence"
|
||||
else args.trigger_reason
|
||||
)
|
||||
evidence_intent = (
|
||||
"collect_public_marketplace_offer_cards"
|
||||
if args.evidence_intent == "recover_visual_offer_evidence"
|
||||
else args.evidence_intent
|
||||
)
|
||||
payload = build_pixelrag_marketplace_search_manifest(
|
||||
platform=platform,
|
||||
keyword=args.marketplace_keyword,
|
||||
crawler=crawler,
|
||||
trigger_reason=trigger_reason,
|
||||
evidence_intent=evidence_intent,
|
||||
viewport=args.viewport,
|
||||
page_size=args.page_size,
|
||||
tile_size=args.tile_size,
|
||||
)
|
||||
print(json.dumps(payload, ensure_ascii=False, indent=2, sort_keys=True))
|
||||
return 0 if payload.get("success") else 1
|
||||
|
||||
if args.manifest_url:
|
||||
platform = (args.platforms or ["momo"])[0]
|
||||
payload = build_pixelrag_visual_evidence_manifest(
|
||||
|
||||
Reference in New Issue
Block a user