Spaces:
Running
Running
Commit
·
e617155
1
Parent(s):
2eda147
Bug-Fixed
Browse files
worker.py
CHANGED
|
@@ -3,6 +3,8 @@ import time
|
|
| 3 |
import io
|
| 4 |
import os
|
| 5 |
import threading
|
|
|
|
|
|
|
| 6 |
from selenium import webdriver
|
| 7 |
from selenium.webdriver.chrome.service import Service as ChromeService
|
| 8 |
from selenium.webdriver.chrome.options import Options as ChromeOptions
|
|
@@ -18,19 +20,24 @@ class QuantumBot:
|
|
| 18 |
self.driver = None
|
| 19 |
self.DEFAULT_TIMEOUT = 30
|
| 20 |
self.termination_event = threading.Event()
|
|
|
|
| 21 |
|
| 22 |
def initialize_driver(self):
|
| 23 |
try:
|
| 24 |
-
self.micro_status("Initializing headless browser...")
|
| 25 |
options = ChromeOptions()
|
| 26 |
options.binary_location = "/usr/bin/chromium"
|
| 27 |
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
|
|
|
|
|
|
|
|
|
|
| 28 |
options.add_argument(f"user-agent={user_agent}")
|
| 29 |
options.add_argument("--headless=new")
|
| 30 |
options.add_argument("--window-size=1920,1080")
|
| 31 |
options.add_argument("--no-sandbox")
|
| 32 |
options.add_argument("--disable-dev-shm-usage")
|
| 33 |
options.add_argument("--disable-gpu")
|
|
|
|
| 34 |
options.add_argument('--disable-blink-features=AutomationControlled')
|
| 35 |
options.add_experimental_option("excludeSwitches", ["enable-automation"])
|
| 36 |
options.add_experimental_option('useAutomationExtension', False)
|
|
@@ -153,4 +160,7 @@ class QuantumBot:
|
|
| 153 |
|
| 154 |
def shutdown(self):
|
| 155 |
if self.driver:
|
| 156 |
-
self.driver.quit()
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
import io
|
| 4 |
import os
|
| 5 |
import threading
|
| 6 |
+
import tempfile
|
| 7 |
+
import shutil
|
| 8 |
from selenium import webdriver
|
| 9 |
from selenium.webdriver.chrome.service import Service as ChromeService
|
| 10 |
from selenium.webdriver.chrome.options import Options as ChromeOptions
|
|
|
|
| 20 |
self.driver = None
|
| 21 |
self.DEFAULT_TIMEOUT = 30
|
| 22 |
self.termination_event = threading.Event()
|
| 23 |
+
self.temp_dir = None
|
| 24 |
|
| 25 |
def initialize_driver(self):
|
| 26 |
try:
|
| 27 |
+
self.micro_status("Initializing isolated headless browser...")
|
| 28 |
options = ChromeOptions()
|
| 29 |
options.binary_location = "/usr/bin/chromium"
|
| 30 |
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
|
| 31 |
+
|
| 32 |
+
self.temp_dir = tempfile.mkdtemp()
|
| 33 |
+
|
| 34 |
options.add_argument(f"user-agent={user_agent}")
|
| 35 |
options.add_argument("--headless=new")
|
| 36 |
options.add_argument("--window-size=1920,1080")
|
| 37 |
options.add_argument("--no-sandbox")
|
| 38 |
options.add_argument("--disable-dev-shm-usage")
|
| 39 |
options.add_argument("--disable-gpu")
|
| 40 |
+
options.add_argument(f"--user-data-dir={self.temp_dir}")
|
| 41 |
options.add_argument('--disable-blink-features=AutomationControlled')
|
| 42 |
options.add_experimental_option("excludeSwitches", ["enable-automation"])
|
| 43 |
options.add_experimental_option('useAutomationExtension', False)
|
|
|
|
| 160 |
|
| 161 |
def shutdown(self):
|
| 162 |
if self.driver:
|
| 163 |
+
self.driver.quit()
|
| 164 |
+
if self.temp_dir and os.path.exists(self.temp_dir):
|
| 165 |
+
shutil.rmtree(self.temp_dir)
|
| 166 |
+
print(f"[Bot] Cleaned up temporary directory: {self.temp_dir}")
|