account_crawler_task.py 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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 "channels":
  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:I{}".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 toutiao sheet
  51. video_list = channels_account_crawler.get_video_list_with_score(platform="channels")
  52. insert_data_into_feishu_sheet(platform="toutiao", data_list=video_list)
  53. video_id_list = [i[0] for i in video_list]
  54. channels_account_crawler.update_video_status(
  55. video_id_tuple=tuple(video_id_list), ori_status=0, new_status=1
  56. )
  57. # crawler toutiao
  58. toutiao_account_crawler = ToutiaoAccountCrawler()
  59. toutiao_account_crawler.deal()
  60. # insert data into toutiao sheet
  61. video_list = toutiao_account_crawler.get_video_list_with_score(platform="toutiao")
  62. insert_data_into_feishu_sheet(platform="toutiao", data_list=video_list)
  63. video_id_list = [i[0] for i in video_list]
  64. toutiao_account_crawler.update_video_status(
  65. video_id_tuple=tuple(video_id_list), ori_status=0, new_status=1
  66. )
  67. # crawler haokanshipin
  68. haokan_account_crawler = HaoKanAccountCrawler()
  69. haokan_account_crawler.deal()
  70. video_list = haokan_account_crawler.get_video_list_with_score(platform="hksp")
  71. insert_data_into_feishu_sheet(platform="hksp", data_list=video_list)
  72. video_id_list = [i[0] for i in video_list]
  73. haokan_account_crawler.update_video_status(
  74. video_id_tuple=tuple(video_id_list), ori_status=0, new_status=1
  75. )