SpiderPromoterHeaderMgs.py 3.9 KB

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