account_crawler_task.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. from tasks.crawler_accounts_by_association import HaoKanAccountCrawler
  10. document_token = "BGQCsOXwHhVRq5tswjgcI8NInqd"
  11. toutiao_sheet_id = "pIJSt7"
  12. channels_sheet_id = "ee0163"
  13. haokan_sheet_id = 'tfftfD'
  14. def insert_data_into_feishu_sheet(platform: str, data_list: list[list[str]]) -> None:
  15. """
  16. insert data info into feishu sheet
  17. :param platform: str, channels or toutiao
  18. :param data_list: list[list[str]],
  19. """
  20. video_array = [
  21. list(i) + [datetime.date.today().strftime("%Y-%m-%d")] for i in data_list
  22. ]
  23. feishu_sheet = FeishuSheetApi()
  24. feishu_sheet.fetch_token()
  25. match platform:
  26. case "toutiao":
  27. sheet_id = toutiao_sheet_id
  28. case "sph":
  29. sheet_id = channels_sheet_id
  30. case 'hksp':
  31. sheet_id = haokan_sheet_id
  32. case _:
  33. raise RuntimeError("platform error")
  34. feishu_sheet.prepend_value(
  35. sheet_token=document_token,
  36. sheet_id=sheet_id,
  37. values=[["******"]],
  38. ranges="A2:A2",
  39. )
  40. feishu_sheet.insert_value(
  41. sheet_token=document_token,
  42. sheet_id=sheet_id,
  43. values=video_array,
  44. ranges="A2:J{}".format(2 + len(video_array)),
  45. )
  46. if __name__ == "__main__":
  47. # crawler channels
  48. channels_account_crawler = ChannelsAccountCrawler()
  49. channels_account_crawler.deal()
  50. # insert data into sph sheet
  51. video_list = channels_account_crawler.get_video_list_with_score(platform="sph")
  52. insert_data_into_feishu_sheet(platform="sph", data_list=video_list)
  53. channel_video_id_list = [i[0] for i in video_list]
  54. if channel_video_id_list:
  55. channels_account_crawler.update_video_status(
  56. video_id_tuple=tuple(channel_video_id_list), ori_status=0, new_status=1
  57. )
  58. # crawler toutiao
  59. toutiao_account_crawler = ToutiaoAccountCrawler()
  60. toutiao_account_crawler.deal()
  61. # insert data into toutiao sheet
  62. video_list = toutiao_account_crawler.get_video_list_with_score(platform="toutiao")
  63. insert_data_into_feishu_sheet(platform="toutiao", data_list=video_list)
  64. toutiao_video_id_list = [i[0] for i in video_list]
  65. if toutiao_video_id_list:
  66. toutiao_account_crawler.update_video_status(
  67. video_id_tuple=tuple(toutiao_video_id_list), ori_status=0, new_status=1
  68. )
  69. # crawler haokanshipin
  70. haokan_account_crawler = HaoKanAccountCrawler()
  71. haokan_account_crawler.deal()
  72. video_list = haokan_account_crawler.get_video_list_with_score(platform="hksp")
  73. insert_data_into_feishu_sheet(platform="hksp", data_list=video_list)
  74. haokan_video_id_list = [i[0] for i in video_list]
  75. if haokan_video_id_list:
  76. haokan_account_crawler.update_video_status(
  77. video_id_tuple=tuple(haokan_video_id_list), ori_status=0, new_status=1
  78. )