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()
|