Procházet zdrojové kódy

当获取用户名称失败时直接抛出异常,而不是返回jd字符

HuangYiwei před 5 roky
rodič
revize
7c11a56ae1
1 změnil soubory, kde provedl 12 přidání a 11 odebrání
  1. 12 11
      jd_mask_spider_requests.py

+ 12 - 11
jd_mask_spider_requests.py

@@ -36,7 +36,7 @@ class JdSecKill(object):
     def wati_some_time(self):
     def wati_some_time(self):
         time.sleep(random.randint(100, 300) / 1000)
         time.sleep(random.randint(100, 300) / 1000)
 
 
-    def seckill_by_proc_pool(self, work_count=3):
+    def seckill_by_proc_pool(self, work_count=5):
         """
         """
         多进程进行抢购
         多进程进行抢购
         work_count:进程数量
         work_count:进程数量
@@ -44,7 +44,6 @@ class JdSecKill(object):
         with ProcessPoolExecutor(work_count) as pool:
         with ProcessPoolExecutor(work_count) as pool:
             for i in range(work_count):
             for i in range(work_count):
                 pool.submit(self.seckill)
                 pool.submit(self.seckill)
-                self.wati_some_time()
 
 
     def __reserve(self):
     def __reserve(self):
         """
         """
@@ -62,13 +61,14 @@ class JdSecKill(object):
         """
         """
         抢购
         抢购
         """
         """
+        self.login()
         while True:
         while True:
             try:
             try:
                 self.request_seckill_url()
                 self.request_seckill_url()
                 self.request_seckill_checkout_page()
                 self.request_seckill_checkout_page()
                 self.submit_seckill_order()
                 self.submit_seckill_order()
             except Exception as e:
             except Exception as e:
-                logger.info('抢购发生异常!', e)
+                logger.info('抢购发生异常,稍后继续执行!', e)
             self.wati_some_time()
             self.wati_some_time()
 
 
     def login(self):
     def login(self):
@@ -134,14 +134,15 @@ class JdSecKill(object):
             'User-Agent': self.default_user_agent,
             'User-Agent': self.default_user_agent,
             'Referer': 'https://order.jd.com/center/list.action',
             'Referer': 'https://order.jd.com/center/list.action',
         }
         }
-        try:
-            resp = self.session.get(url=url, params=payload, headers=headers)
-            resp_json = parse_json(resp.text)
-            # 响应中包含了许多用户信息,现在在其中返回昵称
-            # jQuery2381773({"imgUrl":"//storage.360buyimg.com/i.imageUpload/xxx.jpg","lastLoginTime":"","nickName":"xxx","plusStatus":"0","realName":"xxx","userLevel":x,"userScoreVO":{"accountScore":xx,"activityScore":xx,"consumptionScore":xxxxx,"default":false,"financeScore":xxx,"pin":"xxx","riskScore":x,"totalScore":xxxxx}})
-            return resp_json.get('nickName') or 'jd'
-        except Exception:
-            return 'jd'
+
+        resp = self.session.get(url=url, params=payload, headers=headers)
+        resp_json = parse_json(resp.text)
+        # 响应中包含了许多用户信息,现在在其中返回昵称
+        # jQuery2381773({"imgUrl":"//storage.360buyimg.com/i.imageUpload/xxx.jpg","lastLoginTime":"","nickName":"xxx","plusStatus":"0","realName":"xxx","userLevel":x,"userScoreVO":{"accountScore":xx,"activityScore":xx,"consumptionScore":xxxxx,"default":false,"financeScore":xxx,"pin":"xxx","riskScore":x,"totalScore":xxxxx}})
+        # nick_name = resp_json.get('nickName')
+        # if not nick_name:
+        #     raise Exception(f"获取用户昵称失败!")
+        return resp_json.get('nickName')
 
 
     def get_seckill_url(self):
     def get_seckill_url(self):
         """获取商品的抢购链接
         """获取商品的抢购链接