account_crawler_task.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. """
  2. @author: luojunhui
  3. @description: try to get some more accounts
  4. """
  5. import datetime
  6. from applications.api.feishu_api import FeishuSheetApi
  7. from tasks.crawler_accounts_by_association import ChannelsAccountCrawler
  8. from tasks.crawler_accounts_by_association import ToutiaoAccountCrawler
  9. document_token = "BGQCsOXwHhVRq5tswjgcI8NInqd"
  10. toutiao_sheet_id = "pIJSt7"
  11. channels_sheet_id = "ee0163"
  12. def insert_data_into_feishu_sheet(platform: str, data_list: list[list[str]]) -> None:
  13. """
  14. insert data info into feishu sheet
  15. :param platform: str, channels or toutiao
  16. :param data_list: list[list[str]],
  17. """
  18. video_array = [
  19. list(i) + [datetime.date.today().strftime("%Y-%m-%d")] for i in data_list
  20. ]
  21. feishu_sheet = FeishuSheetApi()
  22. feishu_sheet.fetch_token()
  23. match platform:
  24. case "toutiao":
  25. sheet_id = toutiao_sheet_id
  26. case "channels":
  27. sheet_id = channels_sheet_id
  28. case _:
  29. raise RuntimeError("platform error")
  30. feishu_sheet.prepend_value(
  31. sheet_token=document_token,
  32. sheet_id=sheet_id,
  33. values=[["******"]],
  34. ranges="A2:A2",
  35. )
  36. feishu_sheet.insert_value(
  37. sheet_token=document_token,
  38. sheet_id=sheet_id,
  39. values=video_array,
  40. ranges="A2:I{}".format(2 + len(video_array)),
  41. )
  42. if __name__ == "__main__":
  43. # crawler channels
  44. channels_account_crawler = ChannelsAccountCrawler()
  45. channels_account_crawler.deal()
  46. # insert data into toutiao sheet
  47. video_list = channels_account_crawler.get_video_list_with_score(platform="channels")
  48. insert_data_into_feishu_sheet(platform="toutiao", data_list=video_list)
  49. video_id_list = [i[0] for i in video_list]
  50. channels_account_crawler.update_video_status(
  51. video_id_tuple=tuple(video_id_list), ori_status=0, new_status=1
  52. )
  53. # crawler toutiao
  54. toutiao_account_crawler = ToutiaoAccountCrawler()
  55. toutiao_account_crawler.deal()
  56. # insert data into toutiao sheet
  57. video_list = toutiao_account_crawler.get_video_list_with_score(platform="toutiao")
  58. insert_data_into_feishu_sheet(platform="toutiao", data_list=video_list)
  59. video_id_list = [i[0] for i in video_list]
  60. toutiao_account_crawler.update_video_status(
  61. video_id_tuple=tuple(video_id_list), ori_status=0, new_status=1
  62. )