# Author renyupeng """ coding=utf-8 @Time : 2023/2/8 10:27 上午 @Site : @File : PromoterLiveInfoSpider.py @Software: PyCharm @contact: renyupeng@c-top.com.cn @Tel 1501435553 """ import json import requests from utils.mysql_helper import insert, batch_insert from utils.mysql_utils import MysqlUtils from utils.send_feishu_msg import SendFeiShuMsg class PromoterLiveInfoSpider: def __init__(self): self.conn = MysqlUtils() self.list = [1, 2, 3] def PromoterLiveInfoSpiderHander(self, promoterId, cookie): headers = {'User-Agent': 'Mozilla/5.0', 'Cookie': cookie} try: for i in self.list: url = "https://cps.kwaixiaodian.com/distribute/pc/seller/promoter/live/info?" \ "timeRangeType={timeRangeType}&promoterId={promoterId}&type=1".format(timeRangeType=i, promoterId=promoterId) rep = requests.get(url=url, headers=headers) table_name = 'kwai_promoter_live_info' data = json.loads(rep.text)["data"] if data["likesCountInfo"] is None: SendFeiShuMsg.send_robot_msg("达人{promoterId}直播数据 is None".format(promoterId=promoterId)) else: promoter_info_item = {"commentsCountInfo": json.dumps(data["commentsCountInfo"]), "likesCountInfo": json.dumps(data["likesCountInfo"]), "liveMinuteDurationInfo": json.dumps(data["liveMinuteDurationInfo"]), "liveVisitorCountInfo": json.dumps(data["liveVisitorCountInfo"]), "maxVisitorCountInfo": json.dumps(data["maxVisitorCountInfo"]), "sharesCountInfo": json.dumps(data["sharesCountInfo"]), "promoterId": data["promoterId"], "staticDataInfoView": json.dumps(data["staticDataInfoView"]), "timeRangeType": i} insert(table_name=table_name, item=promoter_info_item) base_table_name = 'kwai_promoter_live_base_info' promoter_base_info_item = { "promoterId": data["promoterId"], "timeRangeType": i, "avgLiveStreamDuration": data["staticDataInfoView"]["avgLiveStreamDuration"], "avgLiveVisitorCount": data["staticDataInfoView"]["avgLiveVisitorCount"], "avgMinuteDuration": data["staticDataInfoView"]["avgMinuteDuration"], "avgPromoteSaleVolume": data["staticDataInfoView"]["avgPromoteSaleVolume"], "avgSameTimeVisitorCount": data["staticDataInfoView"]["avgSameTimeVisitorCount"], "avgViewTime": data["staticDataInfoView"]["avgViewTime"], "avgVisitorOnlineCount": data["staticDataInfoView"]["avgVisitorOnlineCount"], "interactionRate": data["staticDataInfoView"]["interactionRate"], "liveStreamVisitorCount": data["staticDataInfoView"]["liveStreamVisitorCount"], "maxLiveVisitorCount": data["staticDataInfoView"]["maxLiveVisitorCount"], "maxMinuteDuration": data["staticDataInfoView"]["maxMinuteDuration"], "maxPromoteSaleVolume": data["staticDataInfoView"]["maxPromoteSaleVolume"], "maxSameTimeVisitorCount": data["staticDataInfoView"]["maxSameTimeVisitorCount"], "minLiveVisitorCount": data["staticDataInfoView"]["minLiveVisitorCount"], "minMinuteDuration": data["staticDataInfoView"]["minMinuteDuration"], "minPromoteSaleVolume": data["staticDataInfoView"]["minPromoteSaleVolume"], "promoteItemCount": data["staticDataInfoView"]["promoteItemCount"], "promoteLiveCount": data["staticDataInfoView"]["promoteLiveCount"], "promoteLiveDays": data["staticDataInfoView"]["promoteLiveDays"], "promoteSaleVolume": data["staticDataInfoView"]["promoteSaleVolume"], } insert(table_name=base_table_name, item=promoter_base_info_item) if i == 3: live_analyse_table_name = 'kwai_promoter_live_analyse_info' commentsCountInfo = tuple(data["commentsCountInfo"]) likesCountInfo = tuple(data["likesCountInfo"]) liveMinuteDurationInfo = tuple(data["liveMinuteDurationInfo"]) liveVisitorCountInfo = tuple(data["liveVisitorCountInfo"]) maxVisitorCountInfo = tuple(data["maxVisitorCountInfo"]) sharesCountInfo = tuple(data["sharesCountInfo"]) live_analyse_item_list = [] for i in range(len(commentsCountInfo)): live_analyse_item = {} commentsCount = commentsCountInfo[i] likesCount = likesCountInfo[i] liveMinuteDuration = liveMinuteDurationInfo[i] liveVisitorCount = liveVisitorCountInfo[i] maxVisitorCount = maxVisitorCountInfo[i] sharesCount = sharesCountInfo[i] live_analyse_item["date"] = commentsCount["date"] live_analyse_item["promoterId"] = commentsCount["promoterId"] live_analyse_item["commentsCount"] = commentsCount["commentsCount"] live_analyse_item["likesCount"] = likesCount["likesCount"] live_analyse_item["liveMinuteDuration"] = liveMinuteDuration["minuteDuration"] live_analyse_item["liveVisitorCount"] = liveVisitorCount["visitorCount"] live_analyse_item["maxVisitorCount"] = maxVisitorCount["maxVisitorCount"] live_analyse_item["sharesCount"] = sharesCount["sharesCount"] live_analyse_item_list.append(live_analyse_item) batch_insert(table_name=live_analyse_table_name, item_list=live_analyse_item_list) except Exception as e: SendFeiShuMsg.send_robot_msg( 'PromoterLiveInfoSpider {promoterId}请求错误请检查cookie{e}'.format(promoterId=promoterId, e=e))