SpiderPromoterHeaderMgs.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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. phone_num = int(random_item[1])
  33. headers = {'User-Agent': 'Mozilla/5.0',
  34. 'Cookie': cookie}
  35. try:
  36. rep = requests.get(url=url, headers=headers)
  37. print(rep.text, '-----rep.txt---------')
  38. # if json.loads(rep.text)["result"] != 1 and json.loads(rep.text)["result"] != 100110000:
  39. # cookie_update.update_temporary_cookie_handler(phone_num)
  40. # retry_cookie = cookie_update.get_cookie_handler()[0]
  41. # headers = {'User-Agent': 'Mozilla/5.0',
  42. # 'Cookie': retry_cookie}
  43. # rep = requests.get(url=url, headers=headers)
  44. # data = json.loads(rep.text)["data"]
  45. # item = {"fans": data["fanNum"], "handurl": data["promoterHeadImgUrl"],
  46. # "promoter_name": data["promoterNickName"],
  47. # "promoter_id": promoter_id}
  48. # listItem.append(item)
  49. # return listItem
  50. # elif json.loads(rep.text)["result"] == 100110000:
  51. # cookie_update.update_cookie_handler(phone_num)
  52. # return
  53. if json.loads(rep.text)["result"] == 1:
  54. data = json.loads(rep.text)["data"]
  55. print(data)
  56. item = {"fans": data["fanNum"], "handurl": data["promoterHeadImgUrl"],
  57. "promoter_name": data["promoterNickName"],
  58. "promoter_id": promoter_id}
  59. listItem.append(item)
  60. return listItem
  61. else:
  62. return
  63. except Exception as e:
  64. SendFeiShuMsg.send_robot_msg(
  65. 'GetPromoterInfo {promoterId}请求错误请检查cookie{e}'.format(promoterId=promoter_id, e=e))
  66. def GetPromoterID(self):
  67. try:
  68. sql = """select a.promoter_id from miaogousi.promoter_oerder_amount a
  69. left join miaogousi.promoter_info b
  70. on a.promoter_id=b.promoter_id
  71. where b.promoter_id is null and a.`30day_gmv` is not null
  72. group by a.promoter_id"""
  73. promoterIdList = self.conn.QueryAll(sql)
  74. return promoterIdList
  75. except Exception as e:
  76. print(e)
  77. def PromoterInsert(self):
  78. promoterIdList = self.GetPromoterID()
  79. try:
  80. for promoterId in promoterIdList:
  81. print(promoterId)
  82. try:
  83. listItem = SpiderPromoterHeader.GetPromoterInfo(int(promoterId[0]))
  84. time.sleep(60)
  85. if listItem is not None:
  86. if listItem.__len__() > 0:
  87. for item in listItem:
  88. try:
  89. self.conn.insert(item)
  90. except Exception as e:
  91. print('插入错误', item)
  92. except Exception as e:
  93. print(e)
  94. except Exception as e:
  95. print('获取达人详情错误', e)
  96. if __name__ == '__main__':
  97. SpiderPromoterHeader().PromoterInsert()