# coding=utf-8 import sys import os import argparse import asyncio # 添加当前目录到 sys.path sys.path.append(os.path.dirname(os.path.abspath(__file__))) def main(): parser = argparse.ArgumentParser(description="dsCrawler 统一启动入口") # nargs='?' 表示参数可选,如果未提供,值为 None parser.add_argument("app", nargs='?', help="要启动的小程序应用名称 (例如: XinDianTu)") parser.add_argument("--action", default="run", help="要执行的操作 (run=全流程, crawl=仅爬取, coord=仅补全坐标)") args = parser.parse_args() if args.app is None: print("您没有输入要爬取的供应商名称,系统将默认爬取新电途。") app_name = "XinDianTu" else: app_name = args.app action = args.action print(f"🚀 正在启动应用: {app_name} (Action: {action})") try: if app_name == "XinDianTu": from Apps.XinDianTu import Run from Apps.XinDianTu import Crawler from Apps.XinDianTu import Coord if action == "run": asyncio.run(Run.main()) elif action == "crawl": # 仅运行爬虫部分(需要自己处理 service 初始化) print("暂未实现单独运行 crawl,请使用 run") elif action == "coord": asyncio.run(Coord.main()) else: print(f"未知操作: {action}") else: print(f"❌ 未找到应用: {app_name}") print("可用应用: XinDianTu") except ImportError as e: print(f"❌ 导入错误: {e}") except Exception as e: print(f"❌ 运行错误: {e}") if __name__ == "__main__": main()