PromoterFansInfo.py 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  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. if data["fansProvinceFeature"] is None:
  49. SendFeiShuMsg.send_robot_msg(
  50. "达人{promoterId}粉丝 fansProvinceFeature 数据 is None".format(promoterId=promoterId))
  51. else:
  52. fansProvinceFeatureList = tuple(data["fansProvinceFeature"])
  53. for fansProvinceFeature in fansProvinceFeatureList:
  54. fansProvinceFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'Province',
  55. "type_date": fansProvinceFeature["provinceFeature"],
  56. "FeatureRate": fansProvinceFeature["provinceFeatureRate"]}
  57. fans_type_date_list.append(fansProvinceFeatureItem)
  58. if data["fansAgeFeature"] is None:
  59. SendFeiShuMsg.send_robot_msg(
  60. "达人{promoterId}粉丝fansAgeFeature数据 is None".format(promoterId=promoterId))
  61. else:
  62. fansAgeFeatureList = tuple(data["fansAgeFeature"])
  63. for fansAgeFeature in fansAgeFeatureList:
  64. fansAgeFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'Age',
  65. "type_date": fansAgeFeature["ageFeature"],
  66. "FeatureRate": fansAgeFeature["ageFeatureRate"]}
  67. fans_type_date_list.append(fansAgeFeatureItem)
  68. if data["fansCityFeature"] is None:
  69. SendFeiShuMsg.send_robot_msg(
  70. "达人{promoterId}粉丝 fansCityFeature 数据 is None".format(promoterId=promoterId))
  71. else:
  72. fansCityFeatureList = tuple(data["fansCityFeature"])
  73. for fansCityFeature in fansCityFeatureList:
  74. fansCityFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'City',
  75. "type_date": fansCityFeature["cityFeature"],
  76. "FeatureRate": fansCityFeature["cityFeatureRate"]}
  77. fans_type_date_list.append(fansCityFeatureItem)
  78. if data["fansCityLevelFeature"] is None:
  79. SendFeiShuMsg.send_robot_msg(
  80. "达人{promoterId}粉丝 fansCityLevelFeature 数据 is None".format(promoterId=promoterId))
  81. else:
  82. fansCityLevelFeatureList = tuple(data["fansCityLevelFeature"])
  83. for fansCityLevelFeature in fansCityLevelFeatureList:
  84. fansCityLevelFeatureItem = {"promoterId": promoterId, "timeRangeType": i,
  85. "type": 'CityLevel',
  86. "type_date": fansCityLevelFeature["cityLevelFeature"],
  87. "FeatureRate": fansCityLevelFeature["cityLevelRate"]}
  88. fans_type_date_list.append(fansCityLevelFeatureItem)
  89. if data["fansEquipBrandFeature"] is None:
  90. SendFeiShuMsg.send_robot_msg(
  91. "达人{promoterId}粉丝 fansEquipBrandFeature 数据 is None".format(promoterId=promoterId))
  92. else:
  93. fansEquipBrandFeatureList = tuple(data["fansEquipBrandFeature"])
  94. for fansEquipBrandFeature in fansEquipBrandFeatureList:
  95. fansEquipBrandFeatureItem = {"promoterId": promoterId, "timeRangeType": i,
  96. "type": 'EquipBrand',
  97. "type_date": fansEquipBrandFeature["equipBrandTitleFeature"],
  98. "FeatureRate": fansEquipBrandFeature["equipBrandFeatureRate"]}
  99. fans_type_date_list.append(fansEquipBrandFeatureItem)
  100. if data["fansEquipPriceFeature"] is None:
  101. SendFeiShuMsg.send_robot_msg(
  102. "达人{promoterId}粉丝 fansEquipPriceFeature 数据 is None".format(promoterId=promoterId))
  103. else:
  104. fansEquipPriceFeatureList = tuple(data["fansEquipPriceFeature"])
  105. for fansEquipPriceFeature in fansEquipPriceFeatureList:
  106. fansEquipPriceFeatureItem = {"promoterId": promoterId, "timeRangeType": i,
  107. "type": 'EquipPrice',
  108. "type_date": fansEquipPriceFeature["equipPriceFeature"],
  109. "FeatureRate": fansEquipPriceFeature["equipPriceFeatureRate"]}
  110. fans_type_date_list.append(fansEquipPriceFeatureItem)
  111. if data["promoteAvgPrice"] is None:
  112. SendFeiShuMsg.send_robot_msg(
  113. "达人{promoterId}粉丝 promoteAvgPrice 数据 is None".format(promoterId=promoterId))
  114. else:
  115. promoteAvgPriceList = tuple(data["promoteAvgPrice"])
  116. for promoteAvgPrice in promoteAvgPriceList:
  117. promoteAvgPriceItem = {"promoterId": promoterId, "timeRangeType": i,
  118. "type": 'promoteAvgPrice',
  119. "type_date": promoteAvgPrice["avgPriceFeature"],
  120. "FeatureRate": promoteAvgPrice["avgPriceFeatureRate"]}
  121. fans_type_date_list.append(promoteAvgPriceItem)
  122. fansGenderFeatureList = tuple(data["fansGenderFeature"])
  123. if data["fansGenderFeature"] is None:
  124. SendFeiShuMsg.send_robot_msg(
  125. "达人{promoterId}粉丝 fansGenderFeature 数据 is None".format(promoterId=promoterId))
  126. else:
  127. for fansGenderFeature in fansGenderFeatureList:
  128. fansGenderFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'Gender',
  129. "type_date": fansGenderFeature["genderFeature"],
  130. "FeatureRate": fansGenderFeature["genderFeatureRate"]}
  131. fans_type_date_list.append(fansGenderFeatureItem)
  132. batch_insert(table_name=fans_base_table, item_list=fans_type_date_list)
  133. fans_trend_list = []
  134. if i == 3:
  135. fans_trend_table = 'kwai_promoter_fans_trend_info'
  136. fansNumTrendList = tuple(data["fansNumTrend"])
  137. for fansNumTrend in fansNumTrendList:
  138. fansNumTrendItem = {"promoterId": promoterId,
  139. "date": fansNumTrend["date"],
  140. "fansTotalAmount": fansNumTrend["fansTotalAmount"],
  141. "fansIncreaseAmount": fansNumTrend["fansIncreaseAmount"]}
  142. fans_trend_list.append(fansNumTrendItem)
  143. batch_insert(table_name=fans_trend_table, item_list=fans_trend_list)
  144. except Exception as e:
  145. SendFeiShuMsg.send_robot_msg(
  146. 'PromoterFansInfo {promoterId}请求错误请检查cookie{e}'.format(promoterId=promoterId, e=e))