Explorar o código

add driverclosed flags

Jason hai 1 ano
pai
achega
41dcab05f3
Modificáronse 2 ficheiros con 19 adicións e 8 borrados
  1. 10 4
      website_clickjobs/gen_seo2a.py
  2. 9 4
      website_clickjobs/type-V/_execute.py

+ 10 - 4
website_clickjobs/gen_seo2a.py

@@ -28,6 +28,7 @@ import multiprocessing
 pymysql.install_as_MySQLdb()
 from userAgentRandomizer import userAgents
 driver=None
+driverclosed = 0
 
 
 headers = {
@@ -84,6 +85,7 @@ def run_once(jsobj,db):
     print(jsobj)
     global driver
 
+    driverclosed=0
 
 #    i=random.randint(0,9)
     i=100
@@ -105,6 +107,7 @@ def run_once(jsobj,db):
         if 'sorry' in driver.current_url:
             print("URL Error: Caught")
             driver.quit()
+            driverclosed=1
             return
         # elmt = driver.find_element(By.XPATH, "//input[@name='q']")
         # time.sleep(1)
@@ -118,6 +121,7 @@ def run_once(jsobj,db):
         print('搜尋結果數量',numresults)
         if numresults==0:
             driver.quit()
+            driverclosed=1
             return
 
         idx=1
@@ -213,6 +217,7 @@ def run_once(jsobj,db):
         traceback.print_exc()
 
     driver.quit()
+    driverclosed=1
     # sys.exit()
 
 def exe():
@@ -266,10 +271,11 @@ def exe():
         time.sleep(20)
 
 def cleanup():
-    try:
-        driver.quit()
-    except:
-        pass
+    if driverclosed == 0:
+        try:
+            driver.quit()
+        except:
+            pass
 
 if __name__ == '__main__':
     runcount=1

+ 9 - 4
website_clickjobs/type-V/_execute.py

@@ -21,6 +21,7 @@ db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/seo?charset=utf8mb
 table=db['nda_log']
 path = 'C:/ChromeDriver' #pls adjust
 path_z = 'C:/ChromeDriver' #pls adjust
+driverclosed = 0
 
 def restart_browser():
     options = webdriver.ChromeOptions()
@@ -128,16 +129,19 @@ def process_one(term, tgt, n, sr, se):
             time.sleep(randint(20,40)) #adjustable
         
         driver.quit()
+        driverclosed=1
         #db.close()
         print('completed')
     except:
         traceback.print_exc()
         #db.close()
         driver.quit()
+        driverclosed=1
 
     #db_local.close()
 
 def execute(termlist, target, n, sr, se):
+    driverclosed=0
     for term in termlist:
         process_one(term, "", n, sr, se)
         parser = argparse.ArgumentParser()
@@ -145,10 +149,11 @@ def execute(termlist, target, n, sr, se):
         args = parser.parse_args()
 
 def cleanup():
-    try:
-        driver.quit()
-    except:
-        pass
+    if driverclosed == 0:
+        try:
+            driver.quit()
+        except:
+            pass
 
 # if args.loop:
 #     schedule.every(0.4).minutes.do(process_one)