53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
# 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() |