123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- # Author renyupeng
- # coding=utf-8
- # @Time : 2023/9/11 下午4:19
- # @Site :
- # @File : SpiderWeekPromoterInfo.py
- # @Software: PyCharm
- # @contact: renyupeng@c-top.com.cn
- # @Tel 1501435553
- import json
- import time
- import random
- from multiprocessing import Process
- import redis
- from spider.PromoterFansInfo import PromoterFansInfo
- from spider.PromoterInfoSpider import PromoterInfoSpider
- from spider.PromoterLiveInfoSpider import PromoterLiveInfoSpider
- from spider.PromoterVideoAnalysisInfo import PromoterVideoAnalysisInfo
- from spider.PromoterVideoAnalysisTrend import PromoterVideoAnalysisTrend
- from spider.ReturnPromoterInfoSpider import ReturnPromoterInfoSpider
- from utils.cookie_update import cookie_update
- from utils.mysql_utils_pro import MysqlProUtils
- from utils.send_feishu_msg import SendFeiShuMsg
- class SpiderWeekPromoterInfo:
- def __init__(self):
- self.r = redis.Redis(host='192.168.0.193', password='hcst@2022', port=6379, db=0)
- self.conn = MysqlProUtils()
- def get_promoter(self, promoterId):
- if self.r.zcard('kuaishou_shop_token') == 0:
- cookie_update.get_coookie_to_redis()
- else:
- random_member = cookie_update.r.zrange('kuaishou_shop_token', 0, -1, withscores=True)
- random_item = random.choice(random_member)
- cookie = random_item[0].decode('utf-8')
- phone_num = int(random_item[1])
- roll = ReturnPromoterInfoSpider().PromoterInfoSpiderHandler(promoterId, cookie)
- if json.loads(roll).__contains__("result"):
- if json.loads(roll)["result"] == 100110000:
- cookie_update.r.zrem('kuaishou_shop_token', random_item[0])
- SendFeiShuMsg.send_cookie_robot_msg(
- "cookie 永久失效 轻更新cookie 唯一电话为{phone_num}".format(phone_num=phone_num))
- retry_item = cookie_update.r.zrange('kuaishou_shop_token', 0, -1, withscores=True)
- retry_cookie = retry_item[0].decode('utf-8')
- cookie_update.update_cookie_handler(phone_num)
- # PromoterInfoSpider().PromoterInfoSpiderHandler(promoterId, retry_cookie)
- # PromoterFansInfo().PromoterFansInfoHandler(promoterId, retry_cookie)
- # PromoterLiveInfoSpider().PromoterLiveInfoSpiderHander(promoterId, retry_cookie)
- # PromoterVideoAnalysisInfo().PromoterVideoAnalysisInfoHandler(promoterId, retry_cookie)
- # PromoterVideoAnalysisTrend().PromoterVideoAnalysisTrendHandler(promoterId, retry_cookie)
- else:
- SendFeiShuMsg.send_cookie_robot_msg(
- "cookie 临时失效 唯一电话为{phone_num},临时失效code{code}".format(phone_num=phone_num,
- code=json.loads(roll)["result"]))
- cookie_update.update_temporary_cookie_handler(phone_num)
- cookie_update.r.zrem('kuaishou_shop_token', random_item[0])
- retry_item = cookie_update.r.zrange('kuaishou_shop_token', 0, -1, withscores=True)
- retry_cookie = retry_item[0].decode('utf-8')
- # PromoterInfoSpider().PromoterInfoSpiderHandler(promoterId, retry_cookie)
- # PromoterFansInfo().PromoterFansInfoHandler(promoterId, retry_cookie)
- # PromoterLiveInfoSpider().PromoterLiveInfoSpiderHander(promoterId, retry_cookie)
- # PromoterVideoAnalysisInfo().PromoterVideoAnalysisInfoHandler(promoterId, retry_cookie)
- # PromoterVideoAnalysisTrend().PromoterVideoAnalysisTrendHandler(promoterId, retry_cookie)
- else:
- # PromoterInfoSpider().PromoterInfoSpiderHandler(promoterId, cookie)
- # PromoterFansInfo().PromoterFansInfoHandler(promoterId, cookie)
- # PromoterLiveInfoSpider().PromoterLiveInfoSpiderHander(promoterId, cookie)
- # PromoterVideoAnalysisInfo().PromoterVideoAnalysisInfoHandler(promoterId, cookie)
- # PromoterVideoAnalysisTrend().PromoterVideoAnalysisTrendHandler(promoterId, cookie)
- roll = json.loads(roll)
- fanNum = roll["fanNum"]
- totalSale = roll["totalSale"]
- avgVideoSales = roll["avgVideoSales"]
- videoSales = roll["videoSales"]
- sql = """ replace into ruixuan.promoter_sales_info(promoter_id, total_sale, fans_number, avg_video_sales, video_sales) values (
- {promoterId},'{totalSale}',{fanNum},'{avgVideoSales}','{videoSales}'
- ) """.format(totalSale=totalSale, fanNum=fanNum, avgVideoSales=avgVideoSales, videoSales=videoSales,
- promoterId=promoterId)
- MysqlProUtils().Operate(sql=sql)
- cookie_update.r.zrem('kuaishou_shop_token', random_item[0])
- def get_promoter_info(self):
- sql = """
- select promoter_id from ruixuan.promoter_info
- """
- promoter_result = self.conn.QueryAll(sql)
- for promoter in promoter_result:
- promoter_id = int(promoter[0].decode('utf-8'))
- self.get_promoter(promoter_id)
- time.sleep(2)
- if __name__ == '__main__':
- SpiderWeekPromoterInfo().get_promoter_info()
|