PromoterFansInfo.py 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. """
  2. Author renyupeng
  3. coding=utf-8
  4. @Time : 2023/2/9 1:21 下午
  5. @Site :
  6. @File : PromoterFansInfo.py
  7. @Software: PyCharm
  8. @contact: renyupeng@c-top.com.cn
  9. @Tel 1501435553
  10. """
  11. import json
  12. import requests
  13. from utils.mysql_helper import insert, batch_insert
  14. from utils.mysql_utils import MysqlUtils
  15. from utils.send_feishu_msg import SendFeiShuMsg
  16. class PromoterFansInfo:
  17. def __init__(self):
  18. self.conn = MysqlUtils()
  19. self.list = [1, 2, 3]
  20. def PromoterFansInfoHandler(self, promoterId, cookie):
  21. headers = {'User-Agent': 'Mozilla/5.0',
  22. 'Cookie': cookie}
  23. try:
  24. for i in self.list:
  25. url = 'https://cps.kwaixiaodian.com/distribute/pc/seller/promoter/fans/info?' \
  26. 'promoterId={promoterId}&timeRangeType={timeRangeType}'.format(promoterId=promoterId,
  27. timeRangeType=i)
  28. rep = requests.get(url=url, headers=headers)
  29. table_name = 'kwai_promoter_fans_info'
  30. data = json.loads(rep.text)["data"]
  31. if data["fansProvinceFeature"] is None:
  32. SendFeiShuMsg.send_robot_msg("达人{promoterId}粉丝数据 is None".format(promoterId=promoterId))
  33. else:
  34. promoter_fans_item = {"fansAgeFeature": json.dumps(data["fansAgeFeature"]),
  35. "fansCityFeature": json.dumps(data["fansCityFeature"]),
  36. "fansCityLevelFeature": json.dumps(data["fansCityLevelFeature"]),
  37. "fansEquipBrandFeature": json.dumps(data["fansEquipBrandFeature"]),
  38. "fansEquipPriceFeature": json.dumps(data["fansEquipPriceFeature"]),
  39. "fansGenderFeature": json.dumps(data["fansGenderFeature"]),
  40. "fansNumTrend": json.dumps(data["fansNumTrend"]),
  41. "fansProvinceFeature": json.dumps(data["fansProvinceFeature"]),
  42. "promoteAvgPrice": json.dumps(data["promoteAvgPrice"]),
  43. "promoterId": promoterId,
  44. "timeRangeType": i}
  45. insert(table_name=table_name, item=promoter_fans_item)
  46. fans_type_date_list = []
  47. fans_base_table = 'kwai_promoter_fans_base_info'
  48. fansProvinceFeatureList = tuple(data["fansProvinceFeature"])
  49. for fansProvinceFeature in fansProvinceFeatureList:
  50. fansProvinceFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'Province',
  51. "type_date": fansProvinceFeature["provinceFeature"],
  52. "FeatureRate": fansProvinceFeature["provinceFeatureRate"]}
  53. fans_type_date_list.append(fansProvinceFeatureItem)
  54. fansAgeFeatureList = tuple(data["fansAgeFeature"])
  55. for fansAgeFeature in fansAgeFeatureList:
  56. fansAgeFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'Age',
  57. "type_date": fansAgeFeature["ageFeature"],
  58. "FeatureRate": fansAgeFeature["ageFeatureRate"]}
  59. fans_type_date_list.append(fansAgeFeatureItem)
  60. fansCityFeatureList = tuple(data["fansCityFeature"])
  61. for fansCityFeature in fansCityFeatureList:
  62. fansCityFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'City',
  63. "type_date": fansCityFeature["cityFeature"],
  64. "FeatureRate": fansCityFeature["cityFeatureRate"]}
  65. fans_type_date_list.append(fansCityFeatureItem)
  66. fansCityLevelFeatureList = tuple(data["fansCityLevelFeature"])
  67. for fansCityLevelFeature in fansCityLevelFeatureList:
  68. fansCityLevelFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'CityLevel',
  69. "type_date": fansCityLevelFeature["cityLevelFeature"],
  70. "FeatureRate": fansCityLevelFeature["cityLevelRate"]}
  71. fans_type_date_list.append(fansCityLevelFeatureItem)
  72. fansEquipBrandFeatureList = tuple(data["fansEquipBrandFeature"])
  73. for fansEquipBrandFeature in fansEquipBrandFeatureList:
  74. fansEquipBrandFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'EquipBrand',
  75. "type_date": fansEquipBrandFeature["equipBrandTitleFeature"],
  76. "FeatureRate": fansEquipBrandFeature["equipBrandFeatureRate"]}
  77. fans_type_date_list.append(fansEquipBrandFeatureItem)
  78. fansEquipPriceFeatureList = tuple(data["fansEquipPriceFeature"])
  79. for fansEquipPriceFeature in fansEquipPriceFeatureList:
  80. fansEquipPriceFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'EquipPrice',
  81. "type_date": fansEquipPriceFeature["equipPriceFeature"],
  82. "FeatureRate": fansEquipPriceFeature["equipPriceFeatureRate"]}
  83. fans_type_date_list.append(fansEquipPriceFeatureItem)
  84. promoteAvgPriceList = tuple(data["promoteAvgPrice"])
  85. for promoteAvgPrice in promoteAvgPriceList:
  86. promoteAvgPriceItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'promoteAvgPrice',
  87. "type_date": promoteAvgPrice["avgPriceFeature"],
  88. "FeatureRate": promoteAvgPrice["avgPriceFeatureRate"]}
  89. fans_type_date_list.append(promoteAvgPriceItem)
  90. fansGenderFeatureList = tuple(data["fansGenderFeature"])
  91. for fansGenderFeature in fansGenderFeatureList:
  92. fansGenderFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'Gender',
  93. "type_date": fansGenderFeature["genderFeature"],
  94. "FeatureRate": fansGenderFeature["genderFeatureRate"]}
  95. fans_type_date_list.append(fansGenderFeatureItem)
  96. batch_insert(table_name=fans_base_table, item_list=fans_type_date_list)
  97. fans_trend_list = []
  98. if i == 3:
  99. fans_trend_table = 'kwai_promoter_fans_trend_info'
  100. fansNumTrendList = tuple(data["fansNumTrend"])
  101. for fansNumTrend in fansNumTrendList:
  102. fansNumTrendItem = {"promoterId": promoterId,
  103. "date": fansNumTrend["date"],
  104. "fansTotalAmount": fansNumTrend["fansTotalAmount"],
  105. "fansIncreaseAmount": fansNumTrend["fansIncreaseAmount"]}
  106. fans_trend_list.append(fansNumTrendItem)
  107. batch_insert(table_name=fans_trend_table, item_list=fans_trend_list)
  108. except Exception as e:
  109. SendFeiShuMsg.send_robot_msg(
  110. 'PromoterFansInfo {promoterId}请求错误请检查cookie{e}'.format(promoterId=promoterId, e=e))