account_cold_start_daily.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. """
  2. @author: luojunhui
  3. """
  4. import datetime
  5. import traceback
  6. from applications import longArticlesMySQL, bot
  7. from coldStartTasks.crawler.weixinCategoryCrawler import weixinCategory
  8. from coldStartTasks.publish.publishCategoryArticles import CategoryColdStartTask
  9. class AccountColdStartDailyTask(object):
  10. """
  11. 账号冷启动代码
  12. """
  13. def __init__(self):
  14. """
  15. """
  16. self.db_client = None
  17. self.default_category = '1030-手动挑号'
  18. def init_db(self):
  19. """
  20. 初始化数据库
  21. :return:
  22. """
  23. try:
  24. self.db_client = longArticlesMySQL()
  25. return True
  26. except Exception as e:
  27. bot(
  28. title='账号抓取任务, 冷启动数据库连接失败',
  29. detail={
  30. "error": str(e),
  31. "error_msg": traceback.format_exc()
  32. }
  33. )
  34. return False
  35. def crawler_task(self, category_list=None):
  36. """
  37. :return:
  38. """
  39. if not category_list:
  40. category_list = [self.default_category]
  41. # 初始化category抓取类
  42. try:
  43. weixin_category_crawler = weixinCategory()
  44. weixin_category_crawler.deal(category_list=category_list)
  45. bot(
  46. title="账号冷启动任务,抓取完成",
  47. detail={
  48. "finish_time": datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S'),
  49. "category": category_list
  50. },
  51. mention=False
  52. )
  53. except Exception as e:
  54. bot(
  55. title="账号抓取冷启动任务,抓取失败",
  56. detail={
  57. "error": str(e),
  58. "error_msg": traceback.format_exc()
  59. }
  60. )
  61. def publish_task(self, category_list=None):
  62. """
  63. 将账号文章发布到aigc抓取计划,并且绑定生成计划
  64. :param category_list:
  65. :return:
  66. """
  67. if not category_list:
  68. category_list = [self.default_category]
  69. try:
  70. weixin_category_publisher = CategoryColdStartTask(db_client=self.db_client)
  71. weixin_category_publisher.do_job(
  72. category_list=category_list
  73. )
  74. bot(
  75. title="账号冷启任务,发布完成",
  76. detail={
  77. "finish_time": datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S'),
  78. "category": category_list
  79. },
  80. mention=False
  81. )
  82. except Exception as e:
  83. bot(
  84. title="账号发布冷启动任务,抓取失败",
  85. detail={
  86. "error": str(e),
  87. "error_msg": traceback.format_exc()
  88. }
  89. )
  90. def main():
  91. """
  92. main job, use crontab to do job daily
  93. todo: 1. 开放一个输入可以输入指定品类 2. 增加对指定账号的抓取&&发布
  94. :return:
  95. """
  96. task = AccountColdStartDailyTask()
  97. if task.init_db():
  98. category_list = None
  99. task.crawler_task(category_list=category_list)
  100. task.publish_task(category_list=category_list)
  101. if __name__ == '__main__':
  102. main()