renyupeng hai 10 meses
pai
achega
a2f783e65a
Modificáronse 1 ficheiros con 78 adicións e 0 borrados
  1. 78 0
      spider/SpiderPromoterInfoYuFu.py

+ 78 - 0
spider/SpiderPromoterInfoYuFu.py

@@ -0,0 +1,78 @@
+# Author renyupeng
+# coding=utf-8
+# @Time    : 2023/9/11 下午4:19
+# @Site    :
+# @File    : SpiderPromoterInfoYuFu.py
+# @Software: PyCharm
+# @contact: renyupeng@c-top.com.cn
+# @Tel 1501435553
+import json
+import threading
+import time
+import random
+import redis
+from spider.ReturnPromoterInfoSpider import ReturnPromoterInfoSpider
+from utils.cookie_update import cookie_update
+from utils.mysql_utils_pro import MysqlProUtils
+
+
+class SpiderPromoterInfoYuFu:
+    conn = MysqlProUtils()
+
+    @staticmethod
+    def get_promoter(promoterId):
+        print(promoterId, '22222')
+        cookie = cookie_update.get_cookie_handler()[0]
+        roll = ReturnPromoterInfoSpider().PromoterInfoSpiderHandler(promoterId, cookie)
+        print(roll, '------')
+
+        if json.loads(roll).__contains__("result"):
+            retry_cookie = cookie_update.get_cookie_handler()[0]
+            roll = ReturnPromoterInfoSpider().PromoterInfoSpiderHandler(promoterId, retry_cookie)
+            try:
+                roll = json.loads(roll)
+                fanNum = roll["fanNum"]
+                totalSale = roll["totalSale"]
+                avgVideoSales = roll["avgVideoSales"]
+                videoSales = roll["videoSales"]
+                sql = """ replace into yufu.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)
+            except Exception as e:
+                print(e)
+
+        else:
+
+            roll = json.loads(roll)
+            print(roll, '--roll--', promoterId)
+            fanNum = roll["fanNum"]
+            totalSale = roll["totalSale"]
+            avgVideoSales = roll["avgVideoSales"]
+            videoSales = roll["videoSales"]
+            sql = """ replace into yufu.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)
+
+    @staticmethod
+    def get_promoter_info():
+        sql = """
+   select a.promoter_id from yufu.kuaishou_promoter  a
+   left join yufu.promoter_sales_info b
+   on a.promoter_id=b.promoter_id
+   where  a.media_id=2
+     and a.create_time>=date_format(date_sub(now(),interval 10 day),'%Y-%m-%d')
+     """
+        promoter_result = SpiderPromoterInfoYuFu.conn.QueryAll(sql)
+        for promoter in promoter_result:
+            promoter_id = promoter[0].decode('utf-8')
+            SpiderPromoterInfoYuFu.get_promoter(promoter_id)
+            time.sleep(30)
+
+
+if __name__ == '__main__':
+    SpiderPromoterInfoYuFu.get_promoter_info()