plan291037 commited on
Commit
fa92d1e
·
verified ·
1 Parent(s): 12a1332

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -22
app.py CHANGED
@@ -1,10 +1,7 @@
1
  from fastapi import FastAPI
2
  from pydantic import BaseModel
3
- from seleniumbase import Driver
4
- import threading
5
- import time
6
- import queue
7
- import json
8
 
9
  app = FastAPI()
10
 
@@ -12,30 +9,31 @@ class URLRequest(BaseModel):
12
  url: str
13
 
14
  url_queue = queue.Queue()
 
15
 
16
- driver = Driver(uc=True, headless=False, incognito=True)
17
- driver.get("https://www.google.com")
 
 
 
 
 
 
 
 
 
 
 
18
 
19
  @app.get("/cookies")
20
  def get_cookies():
21
- cookies = driver.get_cookies()
22
- return cookies
23
-
24
- def browser_worker():
25
- while True:
26
- url = url_queue.get()
27
- try:
28
- print(f"[open] {url}")
29
- driver.get(url)
30
- time.sleep(0.5)
31
- except Exception as e:
32
- print("[error]", e)
33
- url_queue.task_done()
34
-
35
- threading.Thread(target=browser_worker, daemon=True).start()
36
 
37
  @app.post("/open_url")
38
  async def open_url(request: URLRequest):
39
  print(f"[queue] {request.url}")
40
  url_queue.put(request.url)
41
  return {"status": "queued", "url": request.url}
 
 
 
1
  from fastapi import FastAPI
2
  from pydantic import BaseModel
3
+ import threading, queue, time, json
4
+ from seleniumbase import SB
 
 
 
5
 
6
  app = FastAPI()
7
 
 
9
  url: str
10
 
11
  url_queue = queue.Queue()
12
+ sb_ref = {"driver": None} # เก็บไว้ใช้ภายหลัง
13
 
14
+ def browser_worker():
15
+ with SB(uc=True, headed=True) as sb:
16
+ sb_ref["driver"] = sb
17
+ sb.get("https://www.google.com") # โหลด google เพื่อได้ cookie
18
+ while True:
19
+ url = url_queue.get()
20
+ try:
21
+ print(f"[open] {url}")
22
+ sb.get(url)
23
+ time.sleep(0.5)
24
+ except Exception as e:
25
+ print("[error]", e)
26
+ url_queue.task_done()
27
 
28
  @app.get("/cookies")
29
  def get_cookies():
30
+ sb = sb_ref.get("driver")
31
+ return sb.get_cookies() if sb else {}
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  @app.post("/open_url")
34
  async def open_url(request: URLRequest):
35
  print(f"[queue] {request.url}")
36
  url_queue.put(request.url)
37
  return {"status": "queued", "url": request.url}
38
+
39
+ threading.Thread(target=browser_worker, daemon=True).start()