123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- # -*- coding: utf-8 -*-
- # @Author: wangkun
- # @Time: 2022/6/27
- import time
- import requests
- import urllib3
- from crawler_monitor.main.common import Common
- from crawler_monitor.main.feishu_lib import Feishu
- proxies = {"http": None, "https": None}
- class UpdateKanYiKan:
- # 待更新数据列表
- update_list = []
- # 检查是否有今日的上升榜日期
- @classmethod
- def check_data(cls, date):
- # 判断J1单元格的日期是否为今天
- time.sleep(1)
- if Feishu.get_range_value("kanyikan", "monitor", "XS1f7l", "M1:M1")[0] != str(date):
- Common.logger("kanyikan").info("今天日期不存在")
- # 插入列 I1:J1,并写入日期
- values = [[str(date)]]
- time.sleep(1)
- Feishu.insert_columns("kanyikan", "monitor", "XS1f7l", "COLUMNS", 12, 13)
- time.sleep(1)
- Feishu.update_values("kanyikan", "monitor", "XS1f7l", "M1:M1", values)
- Common.logger("kanyikan").info("插入今天日期成功\n")
- else:
- Common.logger("kanyikan").info("今天日期已存在\n")
- # 更新看一看播放量
- @classmethod
- def update_play_cnt(cls):
- try:
- kanyikan_sheet = Feishu.get_values_batch("kanyikan", "monitor", "XS1f7l")
- for i in range(1, len(kanyikan_sheet)):
- Common.logger("kanyikan").info("正在更新第{}行", i + 1)
- video_id = kanyikan_sheet[i][6]
- if video_id is None or video_id == "":
- Common.logger("kanyikan").info("空行")
- cls.update_list.append("0")
- else:
- url = "https://search.weixin.qq.com/cgi-bin/recwxa/recwxagetonevideoinfo?"
- param = {
- "session": Common.get_session(),
- "vid": video_id,
- "wxaVersion": "3.9.2",
- "channelid": "208201",
- "scene": "32",
- "subscene": "1089",
- "model": "iPhone 11<iPhone12,1>14.7.1",
- "clientVersion": "8.0.18",
- "sharesearchid": "447665862521758270",
- "sharesource": "-1"
- }
- urllib3.disable_warnings()
- r = requests.get(url=url, params=param, proxies=proxies, verify=False)
- v_play_cnt = r.json()["data"]["played_cnt"]
- # 更新单个视频
- # Feishu.update_values(
- # "kanyikan", "monitor", "XS1f7l", "G" + str(i + 1) + ":" + "G" + str(i + 1), [[v_play_cnt]])
- # Common.logger("kanyikan").info("video_id:{}, play_cnt:{}, 更新成功\n", video_id, v_play_cnt)
- # 待更新数据列表
- cls.update_list.append(v_play_cnt)
- Common.logger("kanyikan").info("video_id:{}, 播放量:{},已添加至待更新数据列表", video_id, v_play_cnt)
- Common.logger("kanyikan").info("待更新列表数量:{}\n", len(cls.update_list))
- if len(cls.update_list) >= 200:
- Common.logger("kanyikan").info("M{}:M{}", str(i-198), str(i+1))
- Common.logger("kanyikan").info("{}\n", cls.update_list)
- time.sleep(1)
- Feishu.update_values("kanyikan", "monitor", "XS1f7l",
- "M"+str(i-198) + ":" + "M"+str(i+1), [[x] for x in cls.update_list])
- Common.logger("kanyikan").info("更新{}条播放量成功\n", len(cls.update_list))
- cls.update_list = []
- elif i+1 == len(kanyikan_sheet):
- Common.logger("kanyikan").info("M{}:M{}", str(i + 1 - len(cls.update_list) + 1), str(i + 1))
- Common.logger("kanyikan").info("{}\n", cls.update_list)
- time.sleep(1)
- Feishu.update_values("kanyikan", "monitor", "XS1f7l",
- "M"+str(i+1-len(cls.update_list)+1) + ":" + "M" + str(i+1),
- [[x] for x in cls.update_list])
- Common.logger("kanyikan").info("更新{}条播放量成功\n", len(cls.update_list))
- cls.update_list = []
- return
- except Exception as e:
- Common.logger("kanyikan").error("更新看一看播放量异常:{}", e)
- if __name__ == "__main__":
- kanyikan = UpdateKanYiKan()
- kanyikan.check_data("2022/06/29")
|