1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import argparse
- from importlib import import_module
- import sys
- PROVINCE_MODULES = {
- "shandong": "shandong.selenium_shandong_download",
- "guangdong": "guangdong.selenium_guangdong_download",
- "guangdong-city": "guangdong.selenium_guangdong_city",
- "henan": "henan.selenium_henan_download",
- "fujian": "fujian.selenium_fujian_download",
- "anhui": "anhui.crawl_gov_anhui_full",
- "jiangsu": "jiangsu.gov_commodity_jiangsu_country",
- "hebei": "hebei.crawl_gov_hebei_full",
- "zhejiang": "zhejiang.crawl_gov_zhejiang_full",
- "quanguo": "quanguo.selenium_download"
- }
- def run_province(name, year=None):
- try:
- module = import_module(PROVINCE_MODULES[name])
- print(f"✅ 正在运行 {name} 模块...")
- # 构造模拟的 sys.argv
- fake_argv = ['script_name']
- if year is not None:
- fake_argv.extend(['--year', str(year)])
- sys.argv = fake_argv
- module.main()
- except Exception as e:
- print(f"❌ {name} 执行失败: {e}")
- def main():
- parser = argparse.ArgumentParser(description="跨省数据采集器")
- group = parser.add_mutually_exclusive_group(required=True)
- group.add_argument('--province', '-p', choices=PROVINCE_MODULES.keys(), help='指定省份')
- group.add_argument('--all', action='store_true', help='运行所有省份')
- parser.add_argument('--year', type=int, help='年份(非必填)')
- args = parser.parse_args()
- if args.province:
- run_province(args.province, args.year)
- elif args.all:
- for name in PROVINCE_MODULES:
- run_province(name, args.year)
- if __name__ == "__main__":
- main()
|