PromoterFansInfo.py 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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):
  21. sql = "select cookie from ruixuan.kuaishou_supply_chain_cookie"
  22. cookie = self.conn.QueryOne(sql)[0]
  23. headers = {'User-Agent': 'Mozilla/5.0',
  24. 'Cookie': cookie}
  25. try:
  26. for i in self.list:
  27. url = 'https://cps.kwaixiaodian.com/distribute/pc/seller/promoter/fans/info?' \
  28. 'promoterId={promoterId}&timeRangeType={timeRangeType}'.format(promoterId=promoterId,
  29. timeRangeType=i)
  30. rep = requests.get(url=url, headers=headers)
  31. table_name = 'kwai_promoter_fans_info'
  32. data = json.loads(rep.text)["data"]
  33. promoter_fans_item = {"fansAgeFeature": json.dumps(data["fansAgeFeature"]),
  34. "fansCityFeature": json.dumps(data["fansCityFeature"]),
  35. "fansCityLevelFeature": json.dumps(data["fansCityLevelFeature"]),
  36. "fansEquipBrandFeature": json.dumps(data["fansEquipBrandFeature"]),
  37. "fansEquipPriceFeature": json.dumps(data["fansEquipPriceFeature"]),
  38. "fansGenderFeature": json.dumps(data["fansGenderFeature"]),
  39. "fansNumTrend": json.dumps(data["fansNumTrend"]),
  40. "fansProvinceFeature": json.dumps(data["fansProvinceFeature"]),
  41. "promoteAvgPrice": json.dumps(data["promoteAvgPrice"]),
  42. "promoterId": promoterId,
  43. "timeRangeType": i}
  44. insert(table_name=table_name, item=promoter_fans_item)
  45. fans_type_date_list = []
  46. fans_base_table = 'kwai_promoter_fans_base_info'
  47. fansProvinceFeatureList = tuple(data["fansProvinceFeature"])
  48. for fansProvinceFeature in fansProvinceFeatureList:
  49. fansProvinceFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'Province',
  50. "type_date": fansProvinceFeature["provinceFeature"],
  51. "FeatureRate": fansProvinceFeature["provinceFeatureRate"]}
  52. fans_type_date_list.append(fansProvinceFeatureItem)
  53. fansAgeFeatureList = tuple(data["fansAgeFeature"])
  54. for fansAgeFeature in fansAgeFeatureList:
  55. fansAgeFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'Age',
  56. "type_date": fansAgeFeature["ageFeature"],
  57. "FeatureRate": fansAgeFeature["ageFeatureRate"]}
  58. fans_type_date_list.append(fansAgeFeatureItem)
  59. fansCityFeatureList = tuple(data["fansCityFeature"])
  60. for fansCityFeature in fansCityFeatureList:
  61. fansCityFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'City',
  62. "type_date": fansCityFeature["cityFeature"],
  63. "FeatureRate": fansCityFeature["cityFeatureRate"]}
  64. fans_type_date_list.append(fansCityFeatureItem)
  65. fansCityLevelFeatureList = tuple(data["fansCityLevelFeature"])
  66. for fansCityLevelFeature in fansCityLevelFeatureList:
  67. fansCityLevelFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'CityLevel',
  68. "type_date": fansCityLevelFeature["cityLevelFeature"],
  69. "FeatureRate": fansCityLevelFeature["cityLevelRate"]}
  70. fans_type_date_list.append(fansCityLevelFeatureItem)
  71. fansEquipBrandFeatureList = tuple(data["fansEquipBrandFeature"])
  72. for fansEquipBrandFeature in fansEquipBrandFeatureList:
  73. fansEquipBrandFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'EquipBrand',
  74. "type_date": fansEquipBrandFeature["equipBrandTitleFeature"],
  75. "FeatureRate": fansEquipBrandFeature["equipBrandFeatureRate"]}
  76. fans_type_date_list.append(fansEquipBrandFeatureItem)
  77. fansEquipPriceFeatureList = tuple(data["fansEquipPriceFeature"])
  78. for fansEquipPriceFeature in fansEquipPriceFeatureList:
  79. fansEquipPriceFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'EquipPrice',
  80. "type_date": fansEquipPriceFeature["equipPriceFeature"],
  81. "FeatureRate": fansEquipPriceFeature["equipPriceFeatureRate"]}
  82. fans_type_date_list.append(fansEquipPriceFeatureItem)
  83. promoteAvgPriceList = tuple(data["promoteAvgPrice"])
  84. for promoteAvgPrice in promoteAvgPriceList:
  85. promoteAvgPriceItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'promoteAvgPrice',
  86. "type_date": promoteAvgPrice["avgPriceFeature"],
  87. "FeatureRate": promoteAvgPrice["avgPriceFeatureRate"]}
  88. fans_type_date_list.append(promoteAvgPriceItem)
  89. fansGenderFeatureList = tuple(data["fansGenderFeature"])
  90. for fansGenderFeature in fansGenderFeatureList:
  91. fansGenderFeatureItem = {"promoterId": promoterId, "timeRangeType": i, "type": 'Gender',
  92. "type_date": fansGenderFeature["genderFeature"],
  93. "FeatureRate": fansGenderFeature["genderFeatureRate"]}
  94. fans_type_date_list.append(fansGenderFeatureItem)
  95. batch_insert(table_name=fans_base_table, item_list=fans_type_date_list)
  96. fans_trend_list = []
  97. if i == 3:
  98. fans_trend_table = 'kwai_promoter_fans_trend_info'
  99. fansNumTrendList = tuple(data["fansNumTrend"])
  100. for fansNumTrend in fansNumTrendList:
  101. fansNumTrendItem = {"promoterId": promoterId,
  102. "date": fansNumTrend["date"],
  103. "fansTotalAmount": fansNumTrend["fansTotalAmount"],
  104. "fansIncreaseAmount": fansNumTrend["fansIncreaseAmount"]}
  105. fans_trend_list.append(fansNumTrendItem)
  106. batch_insert(table_name=fans_trend_table, item_list=fans_trend_list)
  107. except Exception as e:
  108. SendFeiShuMsg.send_robot_msg('请求错误请检查cookie{e}'.format(e=e))
  109. if __name__ == '__main__':
  110. PromoterFansInfo().PromoterFansInfoHandler(1424128656)