123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- import requests
- from common.aliyun_log import AliyunLogger
- from common.db import MysqlHelper
- def get_history_id(name):
- """
- 从数据库表中读取 id
- """
- # select_user_sql = f"""select * from crawler_user_v3 where ={task_id}"""
- # user_list = MysqlHelper.get_values(log_type, crawler, select_user_sql, env, action="")
- name_id_dict = {}
- if name_id_dict.get(name):
- return name_id_dict[name]
- else:
- return False
- def find_target_user(name, user_list):
- for obj in user_list:
- if obj['name'] == name:
- return obj
- else:
- continue
- return False
- class ShiPinHaoAccount:
- def __init__(self, token, cookie, account_name):
- self.token = token
- self.cookie = cookie
- self.account_name = account_name
- def get_account_id(self):
- # 读历史数据,如果存在 id,则直接返回 id
- history_id = get_history_id(self.account_name)
- if history_id:
- return history_id
- else:
- url = "https://mp.weixin.qq.com/cgi-bin/videosnap"
- params = {
- "action": "search",
- "scene": "1",
- "buffer": "",
- "query": self.account_name,
- "count": "21",
- "token": self.token,
- "lang": "zh_CN",
- "f": "json",
- "ajax": "1"
- }
- headers = {
- 'authority': 'mp.weixin.qq.com',
- 'accept': '*/*',
- 'accept-language': 'en,zh-CN;q=0.9,zh;q=0.8',
- 'cookie': self.cookie,
- 'referer': 'https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=77&createType=0&token={}&lang=zh_CN'.format(
- self.token),
- 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
- 'x-requested-with': 'XMLHttpRequest'
- }
- response = requests.request("GET", url, headers=headers, params=params)
- user_list = response.json()['acct_list']
- target_user = find_target_user(name=self.account_name, user_list=user_list)
- return target_user
- def get_account_videos(self):
- user_info = self.get_account_id()
- if user_info:
- url = "https://mp.weixin.qq.com/cgi-bin/videosnap"
- params = {
- "action": "get_feed_list",
- "username": user_info['username'],
- "buffer": "",
- "count": "15",
- "scene": "1",
- "token": self.token,
- "lang": "zh_CN",
- "f": "json",
- "ajax": "1"
- }
- headers = {
- 'authority': 'mp.weixin.qq.com',
- 'accept': '*/*',
- 'accept-language': 'en,zh-CN;q=0.9,zh;q=0.8',
- 'cookie': self.cookie,
- 'referer': 'https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=77&createType=0&token={}&lang=zh_CN'.format(self.token),
- 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
- 'x-requested-with': 'XMLHttpRequest'
- }
- response = requests.request("GET", url, headers=headers, params=params)
- video_list = response.json()
- # print(json.dumps(video_list, ensure_ascii=False, indent=4))
- # print(len(video_list['list']))
- for obj in video_list['list']:
- print(obj['desc'])
- else:
- print("Did not find any user info")
|