run_gongzhonghao5_author_scheduling.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # -*- coding: utf-8 -*-
  2. # @Author: wangkun
  3. # @Time: 2023/4/23
  4. import argparse
  5. import os
  6. import sys
  7. import time
  8. sys.path.append(os.getcwd())
  9. from common.public import task_fun
  10. from common.common import Common
  11. from common.scheduling_db import MysqlHelper
  12. from gongzhonghao.gongzhonghao_author.gongzhonghao5_author import GongzhonghaoAuthor5
  13. def main(log_type, crawler, task, oss_endpoint, env):
  14. while True:
  15. cmd = 'ps -ef | grep "run_gongzhonghao5_author_scheduling.py" | grep -v "grep"'
  16. result = os.popen(cmd).read()
  17. if len(result) != 0:
  18. Common.logger(log_type, crawler).info("公众号_5抓取未完成,无需启动新进程")
  19. time.sleep(1)
  20. else:
  21. break
  22. task_dict = task_fun(task)['task_dict']
  23. rule_dict = task_fun(task)['rule_dict']
  24. task_id = task_dict['task_id']
  25. select_user_sql = f"""select * from crawler_user_v3 where task_id={task_id}"""
  26. user_list = MysqlHelper.get_values(log_type, crawler, select_user_sql, env, action="")
  27. Common.logger(log_type, crawler).info(f"调度任务:\n{task_dict}")
  28. Common.logger(log_type, crawler).info(f"抓取规则:\n{rule_dict}")
  29. Common.logger(log_type, crawler).info(f"用户列表:\n{user_list}")
  30. Common.logger(log_type, crawler).info(f'开始抓取 {task_dict["task_name"]} 定向榜\n')
  31. GongzhonghaoAuthor5.get_all_videos(log_type=log_type,
  32. crawler=crawler,
  33. user_list=user_list,
  34. rule_dict=rule_dict,
  35. oss_endpoint=oss_endpoint,
  36. env=env)
  37. Common.del_logs(log_type, crawler)
  38. Common.logger(log_type, crawler).info('抓取完一轮\n')
  39. if __name__ == "__main__":
  40. parser = argparse.ArgumentParser() ## 新建参数解释器对象
  41. parser.add_argument('--log_type', type=str) ## 添加参数,注明参数类型
  42. parser.add_argument('--crawler') ## 添加参数
  43. parser.add_argument('--task') ## 添加参数
  44. parser.add_argument('--oss_endpoint') ## 添加参数
  45. parser.add_argument('--env') ## 添加参数
  46. args = parser.parse_args() ### 参数赋值,也可以通过终端赋值
  47. main(log_type=args.log_type,
  48. crawler=args.crawler,
  49. task=args.task,
  50. oss_endpoint=args.oss_endpoint,
  51. env=args.env)