Selaa lähdekoodia

bug fixed version(修复了一些抛出异常的bug,保证程序的持续运行)

Shellmiao 4 vuotta sitten
vanhempi
commit
cc3dcccaf4

+ 18 - 12
VerificationCode/mcbbs/task.py

@@ -47,20 +47,26 @@ def submit(driver, i):
 
 
 def complete_tasks(driver):
-    driver.get('https://www.mcbbs.net/home.php?mod=task&item=doing')
-    i = '1'
     while True:
-        result = complete(driver, i)
-        print(result)
-        if result == 0:
-            break
-        elif result == -1:
-            i = i
+        try:
+            driver.get('https://www.mcbbs.net/home.php?mod=task&item=doing')
+            i = '1'
+            while True:
+                result = complete(driver, i)
+                print(result)
+                if result == 0:
+                    break
+                elif result == -1:
+                    i = i
+                else:
+                    result = str(result)
+                    i = result
+                time.sleep(4)
+                driver.get('https://www.mcbbs.net/home.php?mod=task&item=doing')
+        except NoSuchElementException:
+            continue
         else:
-            result = str(result)
-            i = result
-        time.sleep(4)
-        driver.get('https://www.mcbbs.net/home.php?mod=task&item=doing')
+            break
 
 
 def complete(driver, i):

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/ao488291.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/cu665462.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/cxg25713.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/ea910567.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/er715684.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/ez886580.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/fpl52242.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/gc085549.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/hdxbl005.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/ik333263.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/jn789078.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/nih86493.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/oe463117.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/opy33988.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/sg224127.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/shellmiao_v.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/ul999876.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/vx155208.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/xb301995.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/xq470943.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/xx581265.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/zfg76656.txt


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
loginTools/cookies/zl942870.txt


+ 45 - 26
start.py

@@ -5,6 +5,7 @@ from VerificationCode.mcbbs.task import get_new_tasks, complete_tasks
 from selenium import webdriver
 from loginTools.login import login
 from loginTools.include_all_cookies import include_all_cookies
+from selenium.common.exceptions import NoSuchWindowException, NoSuchElementException
 import time
 import threading
 import random
@@ -29,24 +30,30 @@ def main_reply():
 
 
 def one_reply():
-    driver = webdriver.Chrome()
-    cookies = include_all_cookies()
-    for cookie_path in cookies:
-        if not login(driver, cookie_path):
+    while True:
+        try:
+            driver = webdriver.Chrome()
+            cookies = include_all_cookies()
+            for cookie_path in cookies:
+                if not login(driver, cookie_path):
+                    continue
+                time.sleep(10)
+                r = random.randint(1, 50)
+                r = str(r)
+                reply(driver,
+                      'https://www.mcbbs.net/forum-chat-' + r + '.html')
+                i = 2
+                while i >= 1:
+                    time.sleep(10)
+                    r = random.randint(1, 50)
+                    r = str(r)
+                    reply(driver, 'https://www.mcbbs.net/forum-mod-' + r + '.html')
+                    i = i - 1
+            driver.quit()
+        except NoSuchWindowException:
             continue
-        time.sleep(10)
-        r = random.randint(1, 50)
-        r = str(r)
-        reply(driver,
-              'https://www.mcbbs.net/forum-chat-' + r + '.html')
-        i = 2
-        while i >= 1:
-            time.sleep(10)
-            r = random.randint(1, 50)
-            r = str(r)
-            reply(driver, 'https://www.mcbbs.net/forum-mod-' + r + '.html')
-            i = i - 1
-    driver.quit()
+        else:
+            break
 
 
 def main_tasks_and_sign():
@@ -62,20 +69,32 @@ def tasks():
 
 
 def get_tasks_and_sign_in(driver):
-    cookies = include_all_cookies()
-    for cookie_path in cookies:
-        if not login(driver, cookie_path):
+    while True:
+        try:
+            cookies = include_all_cookies()
+            for cookie_path in cookies:
+                if not login(driver, cookie_path):
+                    continue
+                main_sign_in(driver)
+                get_new_tasks(driver)
+        except NoSuchElementException:
             continue
-        main_sign_in(driver)
-        get_new_tasks(driver)
+        else:
+            break
 
 
 def final_complete_tasks(driver):
-    cookies = include_all_cookies()
-    for cookie_path in cookies:
-        if not login(driver, cookie_path):
+    while True:
+        try:
+            cookies = include_all_cookies()
+            for cookie_path in cookies:
+                if not login(driver, cookie_path):
+                    continue
+                complete_tasks(driver)
+        except NoSuchElementException:
             continue
-        complete_tasks(driver)
+        else:
+            break
 
 
 if __name__ == '__main__':

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä