SpiderPromoterHeaderRocket.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. # Author renyupeng
  2. # coding=utf-8
  3. # @Time : 2023/3/23 2:49 下午
  4. # @Site :
  5. # @File : SpiderPromoterHeader.py
  6. # @Software: PyCharm
  7. # @contact: renyupeng@c-top.com.cn
  8. # @Tel 1501435553
  9. import json
  10. import random
  11. import time
  12. import redis
  13. import requests
  14. from utils.cookie_update import cookie_update
  15. from utils.mysql_utils_pro import MysqlProUtils
  16. from utils.send_feishu_msg import SendFeiShuMsg
  17. class SpiderPromoterHeader:
  18. def __init__(self):
  19. self.conn = MysqlProUtils()
  20. @staticmethod
  21. def GetPromoterInfo(promoter_id):
  22. r = redis.Redis(host='192.168.0.99', password='', port=6379, db=0)
  23. listItem = []
  24. url = 'https://cps.kwaixiaodian.com/distribute/pc/seller/promoter/info?promoterId={promoterId}&type=1'.format(
  25. promoterId=promoter_id)
  26. if r.zcard('kuaishou_shop_click_token') == 0:
  27. cookie_update.get_click_coookie_to_redis()
  28. else:
  29. random_member = r.zrange('kuaishou_shop_click_token', 0, -1, withscores=True)
  30. random_item = random.choice(random_member)
  31. # cookie = random_item[0].decode('utf-8')
  32. cookie = cookie_update.get_cookie_handler()
  33. phone_num = int(random_item[1])
  34. headers = {'User-Agent': 'Mozilla/5.0',
  35. 'Cookie': cookie}
  36. try:
  37. rep = requests.get(url=url, headers=headers)
  38. print(rep.text, '-----rep.txt---------')
  39. # if json.loads(rep.text)["result"] != 1 and json.loads(rep.text)["result"] != 100110000:
  40. # cookie_update.update_temporary_cookie_handler(phone_num)
  41. # retry_cookie = cookie_update.get_cookie_handler()[0]
  42. # headers = {'User-Agent': 'Mozilla/5.0',
  43. # 'Cookie': retry_cookie}
  44. # rep = requests.get(url=url, headers=headers)
  45. # data = json.loads(rep.text)["data"]
  46. # item = {"fans": data["fanNum"], "handurl": data["promoterHeadImgUrl"],
  47. # "promoter_name": data["promoterNickName"],
  48. # "promoter_id": promoter_id}
  49. # listItem.append(item)
  50. # return listItem
  51. # elif json.loads(rep.text)["result"] == 100110000:
  52. # cookie_update.update_cookie_handler(phone_num)
  53. # return
  54. if json.loads(rep.text)["result"] == 1:
  55. data = json.loads(rep.text)["data"]
  56. print(data)
  57. item = {"fans": data["fanNum"], "handurl": data["promoterHeadImgUrl"],
  58. "promoter_name": data["promoterNickName"],
  59. "promoter_id": promoter_id}
  60. listItem.append(item)
  61. return listItem
  62. else:
  63. return
  64. except Exception as e:
  65. SendFeiShuMsg.send_robot_msg(
  66. 'GetPromoterInfo {promoterId}请求错误请检查cookie{e}'.format(promoterId=promoter_id, e=e))
  67. def GetPromoterID(self):
  68. try:
  69. sql = """select a.promoter_id from rocket.promoter_oerder_amount a
  70. left join rocket.promoter_info b
  71. on a.promoter_id=b.promoter_id
  72. where b.promoter_id is null and a.`30day_gmv` is not null
  73. group by a.promoter_id"""
  74. promoterIdList = self.conn.QueryAll(sql)
  75. return promoterIdList
  76. except Exception as e:
  77. print(e)
  78. def PromoterInsert(self):
  79. promoterIdList = self.GetPromoterID()
  80. try:
  81. for promoterId in promoterIdList:
  82. print(promoterId)
  83. try:
  84. listItem = SpiderPromoterHeader.GetPromoterInfo(int(promoterId[0]))
  85. time.sleep(60)
  86. if listItem is not None:
  87. if listItem.__len__() > 0:
  88. for item in listItem:
  89. try:
  90. self.conn.RocketInsert(item)
  91. except Exception as e:
  92. print('插入错误', item)
  93. except Exception as e:
  94. print(e)
  95. except Exception as e:
  96. print('获取达人详情错误', e)
  97. if __name__ == '__main__':
  98. SpiderPromoterHeader().PromoterInsert()