jared 2 years ago
parent
commit
6941d9d119
2 changed files with 28 additions and 21 deletions
  1. BIN
      web/__pycache__/main.cpython-38.pyc
  2. 28 21
      web/main.py

BIN
web/__pycache__/main.cpython-38.pyc


+ 28 - 21
web/main.py

@@ -29,13 +29,8 @@ import time
 from selenium.webdriver.common.keys import Keys
 from selenium.webdriver.common.by import By
 from selenium.webdriver.chrome.service import Service
-<<<<<<< HEAD
 # import pymysql
 # pymysql.install_as_MySQLdb()
-=======
-import pymysql
-pymysql.install_as_MySQLdb()
->>>>>>> 1e549144883c5497a3deb5317546a98a9e9c2890
 
 driver = None
 
@@ -135,23 +130,35 @@ async def func_expand(kw: str = Form(...),kw2:Optional[str] = Form(None),kw3:Opt
 
 
 def restart_browser():
-    os.system('docker container stop p4444')
+    portnum=random.randint(4444,4555)
+    print(portnum)
+    os.system('docker container stop sel2')
     time.sleep(1)
-    os.system('docker container rm p4444')
+    os.system('docker container rm sel2')
     time.sleep(1)
-    os.system('docker run -d -p ' + '4458' + ':4444 --name p4444 --add-host=host.docker.internal:host-gateway --shm-size="2g" selenium/standalone-chrome:103.0')
+    os.system('docker run -d -p'+str(portnum)+':4444 --name sel2 --add-host=host.docker.internal:host-gateway --shm-size="2g" selenium/standalone-chrome:103.0')
     time.sleep(18)
-    options = webdriver.ChromeOptions()
-    options.add_argument("--no-sandbox")
-    options.add_argument("--disable-dev-shm-usage")
-    options.add_argument('--headless')
-<<<<<<< HEAD
-    s = Service('/root/drivers/102/chromedriver')
-    driver = webdriver.Chrome(options=options,service=s)
-=======
-    ddriver = webdriver.Remote(command_executor='http://127.0.0.1:4458/wd/hub',options=options)
->>>>>>> 1e549144883c5497a3deb5317546a98a9e9c2890
-    driver.set_window_size(950, 20000)
+    global driver
+
+    if driver is not None:
+        print('closing')
+        driver.quit()
+        driver=None
+    try: 
+        options = webdriver.ChromeOptions()
+        options.add_argument("--no-sandbox")
+        #options.add_argument("--disable-dev-shm-usage")
+        options.add_argument('--headless')
+        options.add_argument("--incognito")
+        try:
+            #driver = webdriver.Chrome(options=options,executable_path='/root/driver/chromedriver103')
+            driver = webdriver.Remote(command_executor='http://127.0.0.1:'+str(portnum)+'/wd/hub',options=options)
+        except:
+            return None
+    except:
+       print('開啟失敗')
+       driver=None
+       return None
     return driver
     
 @app.post("/ranking/")
@@ -199,9 +206,9 @@ async def ranking(kw: str = Form(...), domain:str = Form(...),kw2:Optional[str]
         result.append(datadict)
         print(domain_name)
         print(datadict)
-        driver.quit()
+        web_driver.quit()
         print('數量',len(elmts))
-        time.sleep(30)
+        time.sleep(90)
 
     # return "ok"
     # return RedirectResponse(url="/ranking_result",)