""" Author renyupeng coding=utf-8 @Time : 2023/2/9 1:21 下午 @Site : @File : PromoterFansInfo.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 PromoterFansInfo: def __init__(self): self.conn = MysqlUtils() self.list = [1, 2, 3] def PromoterFansInfoHandler(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/fans/info?' \ 'promoterId={promoterId}&timeRangeType={timeRangeType}'.format(promoterId=promoterId, timeRangeType=i) rep = requests.get(url=url, headers=headers) table_name = 'kwai_promoter_fans_info' data = json.loads(rep.text)["data"] if data["fansProvinceFeature"] is None: SendFeiShuMsg.send_robot_msg("达人{promoterId}粉丝数据 is None".format(promoterId=promoterId)) else: promoter_fans_item = {"fansAgeFeature": json.dumps(data["fansAgeFeature"]), "fansCityFeature": json.dumps(data["fansCityFeature"]), "fansCityLevelFeature": json.dumps(data["fansCityLevelFeature"]), "fansEquipBrandFeature": json.dumps(data["fansEquipBrandFeature"]), "fansEquipPriceFeature": json.dumps(data["fansEquipPriceFeature"]), "fansGenderFeature": json.dumps(data["fansGenderFeature"]), "fansNumTrend": json.dumps(data["fansNumTrend"]), "fansProvinceFeature": json.dumps(data["fansProvinceFeature"]), "promoteAvgPrice": json.dumps(data["promoteAvgPrice"]), "promoterId": promoterId, "timeRangeType": i} insert(table_name=table_name, item=promoter_fans_item) fans_type_date_list = [] fans_base_table = 'kwai_promoter_fans_base_info' if data["fansProvinceFeature"] is None: SendFeiShuMsg.send_robot_msg( "达人{promoterId}粉丝 fansProvinceFeature 数据 is None".format(promoterId=promoterId)) else: fansProvinceFeatureList = tuple(data["fansProvinceFeature"]) for fansProvinceFeature in fansProvinceFeatureList: fansProvinceFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'Province', "type_date": fansProvinceFeature["provinceFeature"], "FeatureRate": fansProvinceFeature["provinceFeatureRate"]} fans_type_date_list.append(fansProvinceFeatureItem) if data["fansAgeFeature"] is None: SendFeiShuMsg.send_robot_msg( "达人{promoterId}粉丝fansAgeFeature数据 is None".format(promoterId=promoterId)) else: fansAgeFeatureList = tuple(data["fansAgeFeature"]) for fansAgeFeature in fansAgeFeatureList: fansAgeFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'Age', "type_date": fansAgeFeature["ageFeature"], "FeatureRate": fansAgeFeature["ageFeatureRate"]} fans_type_date_list.append(fansAgeFeatureItem) if data["fansCityFeature"] is None: SendFeiShuMsg.send_robot_msg( "达人{promoterId}粉丝 fansCityFeature 数据 is None".format(promoterId=promoterId)) else: fansCityFeatureList = tuple(data["fansCityFeature"]) for fansCityFeature in fansCityFeatureList: fansCityFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'City', "type_date": fansCityFeature["cityFeature"], "FeatureRate": fansCityFeature["cityFeatureRate"]} fans_type_date_list.append(fansCityFeatureItem) if data["fansCityLevelFeature"] is None: SendFeiShuMsg.send_robot_msg( "达人{promoterId}粉丝 fansCityLevelFeature 数据 is None".format(promoterId=promoterId)) else: fansCityLevelFeatureList = tuple(data["fansCityLevelFeature"]) for fansCityLevelFeature in fansCityLevelFeatureList: fansCityLevelFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'CityLevel', "type_date": fansCityLevelFeature["cityLevelFeature"], "FeatureRate": fansCityLevelFeature["cityLevelRate"]} fans_type_date_list.append(fansCityLevelFeatureItem) if data["fansEquipBrandFeature"] is None: SendFeiShuMsg.send_robot_msg( "达人{promoterId}粉丝 fansEquipBrandFeature 数据 is None".format(promoterId=promoterId)) else: fansEquipBrandFeatureList = tuple(data["fansEquipBrandFeature"]) for fansEquipBrandFeature in fansEquipBrandFeatureList: fansEquipBrandFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'EquipBrand', "type_date": fansEquipBrandFeature["equipBrandTitleFeature"], "FeatureRate": fansEquipBrandFeature["equipBrandFeatureRate"]} fans_type_date_list.append(fansEquipBrandFeatureItem) if data["fansEquipPriceFeature"] is None: SendFeiShuMsg.send_robot_msg( "达人{promoterId}粉丝 fansEquipPriceFeature 数据 is None".format(promoterId=promoterId)) else: fansEquipPriceFeatureList = tuple(data["fansEquipPriceFeature"]) for fansEquipPriceFeature in fansEquipPriceFeatureList: fansEquipPriceFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'EquipPrice', "type_date": fansEquipPriceFeature["equipPriceFeature"], "FeatureRate": fansEquipPriceFeature["equipPriceFeatureRate"]} fans_type_date_list.append(fansEquipPriceFeatureItem) if data["promoteAvgPrice"] is None: SendFeiShuMsg.send_robot_msg( "达人{promoterId}粉丝 promoteAvgPrice 数据 is None".format(promoterId=promoterId)) else: promoteAvgPriceList = tuple(data["promoteAvgPrice"]) for promoteAvgPrice in promoteAvgPriceList: promoteAvgPriceItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'promoteAvgPrice', "type_date": promoteAvgPrice["avgPriceFeature"], "FeatureRate": promoteAvgPrice["avgPriceFeatureRate"]} fans_type_date_list.append(promoteAvgPriceItem) fansGenderFeatureList = tuple(data["fansGenderFeature"]) if data["fansGenderFeature"] is None: SendFeiShuMsg.send_robot_msg( "达人{promoterId}粉丝 fansGenderFeature 数据 is None".format(promoterId=promoterId)) else: for fansGenderFeature in fansGenderFeatureList: fansGenderFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'Gender', "type_date": fansGenderFeature["genderFeature"], "FeatureRate": fansGenderFeature["genderFeatureRate"]} fans_type_date_list.append(fansGenderFeatureItem) batch_insert(table_name=fans_base_table, item_list=fans_type_date_list) fans_trend_list = [] if i == 3: fans_trend_table = 'kwai_promoter_fans_trend_info' fansNumTrendList = tuple(data["fansNumTrend"]) for fansNumTrend in fansNumTrendList: fansNumTrendItem = {"promoterId": promoterId, "date": fansNumTrend["date"], "fansTotalAmount": fansNumTrend["fansTotalAmount"], "fansIncreaseAmount": fansNumTrend["fansIncreaseAmount"]} fans_trend_list.append(fansNumTrendItem) batch_insert(table_name=fans_trend_table, item_list=fans_trend_list) except Exception as e: SendFeiShuMsg.send_robot_msg( 'PromoterFansInfo {promoterId}请求错误请检查cookie{e}'.format(promoterId=promoterId, e=e))