|
@@ -73,81 +73,81 @@ class Person:
|
|
|
else:
|
|
|
return False
|
|
|
|
|
|
- # 从小程序中,关注用户列表同步至云文档
|
|
|
- @classmethod
|
|
|
- def get_sub_or_fans_list(cls, log_type):
|
|
|
- try:
|
|
|
- follow_list = []
|
|
|
- follow_sheet = Feishu.get_values_batch(log_type, "xiaoniangao", "oNpThi")
|
|
|
- url = "https://api.xiaoniangao.cn/account/get_sub_or_fans_list"
|
|
|
- headers = {
|
|
|
- "X-Mid": str(cls.follow_x_mid),
|
|
|
- "X-Token-Id": str(cls.follow_x_token_id),
|
|
|
- "content-type": "application/json",
|
|
|
- "uuid": str(cls.follow_uid),
|
|
|
- "Accept-Encoding": "gzip,compress,br,deflate",
|
|
|
- "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X)"
|
|
|
- " AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 "
|
|
|
- "MicroMessenger/8.0.20(0x18001435) NetType/WIFI Language/zh_CN",
|
|
|
- "Referer": str(cls.follow_referer)
|
|
|
- }
|
|
|
- json_text = {
|
|
|
- "visited_mid": str(cls.follow_x_mid),
|
|
|
- "start_t": cls.wechat_follow_start_t,
|
|
|
- "limit": 20,
|
|
|
- "h_qs": "imageMogr2/gravity/center/rotate/$/thumbnail/!84x84r/crop/84x84/interlace/1/format/jpg",
|
|
|
- "type": 1,
|
|
|
- "token": str(cls.follow_token),
|
|
|
- "uid": str(cls.follow_uid),
|
|
|
- "proj": "ma",
|
|
|
- "wx_ver": "8.0.23",
|
|
|
- "code_ver": "3.68.0",
|
|
|
- "log_common_params": {
|
|
|
- "e": [{
|
|
|
- "data": {
|
|
|
- "page": "followFansPage"
|
|
|
- }
|
|
|
- }],
|
|
|
- "ext": {
|
|
|
- "brand": "iPhone",
|
|
|
- "device": "iPhone 11",
|
|
|
- "os": "iOS 14.7.1",
|
|
|
- "weixinver": "8.0.23",
|
|
|
- "srcver": "2.24.7",
|
|
|
- "net": "wifi",
|
|
|
- "scene": "1089"
|
|
|
- },
|
|
|
- "pj": "1",
|
|
|
- "pf": "2",
|
|
|
- "session_id": "7468cf52-00ea-432e-8505-6ea3ad7ec164"
|
|
|
- }
|
|
|
- }
|
|
|
- r = requests.post(url=url, headers=headers, json=json_text, proxies=proxies, verify=False)
|
|
|
- if "data" not in r.json():
|
|
|
- Common.logger(log_type).warning("从小程序中获取关注用户列表:{}", r.text)
|
|
|
- else:
|
|
|
- users = r.json()["data"]["list"]
|
|
|
- for i in range(len(users)):
|
|
|
- profile_mid = users[i]["mid"]
|
|
|
- nick = users[i]["nick"]
|
|
|
- follow_list.append(profile_mid)
|
|
|
- # 同步已关注的用户至云文档
|
|
|
- if profile_mid not in [j for i in follow_sheet for j in i]:
|
|
|
- Feishu.insert_columns(log_type, "xiaoniangao", "oNpThi", "ROWS", 1, 2)
|
|
|
- time.sleep(1)
|
|
|
- values = [[profile_mid, nick]]
|
|
|
- Feishu.update_values(log_type, "xiaoniangao", "oNpThi", "B2:C2", values)
|
|
|
- else:
|
|
|
- Common.logger(log_type).info("用户:{},在云文档中已存在", nick)
|
|
|
- cls.wechat_follow_start_t = r.json()["data"]["next_t"]
|
|
|
- # 翻页,直至到底了
|
|
|
- if cls.wechat_follow_start_t != 0:
|
|
|
- cls.get_sub_or_fans_list(log_type)
|
|
|
- else:
|
|
|
- Common.logger(log_type).info("从小程序中同步关注用户至云文档完成\n")
|
|
|
- return follow_list
|
|
|
- except Exception as e:
|
|
|
- Common.logger(log_type).error("从小程序中,关注用户列表同步至云文档异常:{}", e)
|
|
|
+ # # 从小程序中,关注用户列表同步至云文档
|
|
|
+ # @classmethod
|
|
|
+ # def get_sub_or_fans_list(cls, log_type):
|
|
|
+ # try:
|
|
|
+ # follow_list = []
|
|
|
+ # follow_sheet = Feishu.get_values_batch(log_type, "xiaoniangao", "oNpThi")
|
|
|
+ # url = "https://api.xiaoniangao.cn/account/get_sub_or_fans_list"
|
|
|
+ # headers = {
|
|
|
+ # "X-Mid": str(cls.follow_x_mid),
|
|
|
+ # "X-Token-Id": str(cls.follow_x_token_id),
|
|
|
+ # "content-type": "application/json",
|
|
|
+ # "uuid": str(cls.follow_uid),
|
|
|
+ # "Accept-Encoding": "gzip,compress,br,deflate",
|
|
|
+ # "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X)"
|
|
|
+ # " AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 "
|
|
|
+ # "MicroMessenger/8.0.20(0x18001435) NetType/WIFI Language/zh_CN",
|
|
|
+ # "Referer": str(cls.follow_referer)
|
|
|
+ # }
|
|
|
+ # json_text = {
|
|
|
+ # "visited_mid": str(cls.follow_x_mid),
|
|
|
+ # "start_t": cls.wechat_follow_start_t,
|
|
|
+ # "limit": 20,
|
|
|
+ # "h_qs": "imageMogr2/gravity/center/rotate/$/thumbnail/!84x84r/crop/84x84/interlace/1/format/jpg",
|
|
|
+ # "type": 1,
|
|
|
+ # "token": str(cls.follow_token),
|
|
|
+ # "uid": str(cls.follow_uid),
|
|
|
+ # "proj": "ma",
|
|
|
+ # "wx_ver": "8.0.23",
|
|
|
+ # "code_ver": "3.68.0",
|
|
|
+ # "log_common_params": {
|
|
|
+ # "e": [{
|
|
|
+ # "data": {
|
|
|
+ # "page": "followFansPage"
|
|
|
+ # }
|
|
|
+ # }],
|
|
|
+ # "ext": {
|
|
|
+ # "brand": "iPhone",
|
|
|
+ # "device": "iPhone 11",
|
|
|
+ # "os": "iOS 14.7.1",
|
|
|
+ # "weixinver": "8.0.23",
|
|
|
+ # "srcver": "2.24.7",
|
|
|
+ # "net": "wifi",
|
|
|
+ # "scene": "1089"
|
|
|
+ # },
|
|
|
+ # "pj": "1",
|
|
|
+ # "pf": "2",
|
|
|
+ # "session_id": "7468cf52-00ea-432e-8505-6ea3ad7ec164"
|
|
|
+ # }
|
|
|
+ # }
|
|
|
+ # r = requests.post(url=url, headers=headers, json=json_text, proxies=proxies, verify=False)
|
|
|
+ # if "data" not in r.json():
|
|
|
+ # Common.logger(log_type).warning("从小程序中获取关注用户列表:{}", r.text)
|
|
|
+ # else:
|
|
|
+ # users = r.json()["data"]["list"]
|
|
|
+ # for i in range(len(users)):
|
|
|
+ # profile_mid = users[i]["mid"]
|
|
|
+ # nick = users[i]["nick"]
|
|
|
+ # follow_list.append(profile_mid)
|
|
|
+ # # 同步已关注的用户至云文档
|
|
|
+ # if profile_mid not in [j for i in follow_sheet for j in i]:
|
|
|
+ # Feishu.insert_columns(log_type, "xiaoniangao", "oNpThi", "ROWS", 1, 2)
|
|
|
+ # time.sleep(1)
|
|
|
+ # values = [[profile_mid, nick]]
|
|
|
+ # Feishu.update_values(log_type, "xiaoniangao", "oNpThi", "B2:C2", values)
|
|
|
+ # else:
|
|
|
+ # Common.logger(log_type).info("用户:{},在云文档中已存在", nick)
|
|
|
+ # cls.wechat_follow_start_t = r.json()["data"]["next_t"]
|
|
|
+ # # 翻页,直至到底了
|
|
|
+ # if cls.wechat_follow_start_t != 0:
|
|
|
+ # cls.get_sub_or_fans_list(log_type)
|
|
|
+ # else:
|
|
|
+ # Common.logger(log_type).info("从小程序中同步关注用户至云文档完成\n")
|
|
|
+ # return follow_list
|
|
|
+ # except Exception as e:
|
|
|
+ # Common.logger(log_type).error("从小程序中,关注用户列表同步至云文档异常:{}", e)
|
|
|
|
|
|
# 从云文档获取关注用户列表
|
|
|
@classmethod
|
|
@@ -557,7 +557,8 @@ class Person:
|
|
|
def get_videos_from_follow(cls, log_type):
|
|
|
try:
|
|
|
# 已关注的用户列表 mids
|
|
|
- profile_mids = cls.get_sub_or_fans_list(log_type)
|
|
|
+ profile_mids = cls.get_follow_users(log_type)
|
|
|
+ # Common.logger(log_type).info('profile_mids:{}', profile_mids)
|
|
|
for profile_mid in profile_mids:
|
|
|
Common.logger(log_type).info("获取用户:{}主页视频\n", profile_mid)
|
|
|
cls.get_videos_from_person(log_type, profile_mid)
|
|
@@ -713,6 +714,5 @@ class Person:
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
person = Person()
|
|
|
- person.download_publish("person", "prod")
|
|
|
-
|
|
|
+ person.get_videos_from_follow('person')
|
|
|
pass
|