Spaces:
Sleeping
Sleeping
selenium SUCKSSSS
Browse files- Dockerfile +17 -0
- app.py +3 -1
Dockerfile
CHANGED
|
@@ -1,5 +1,18 @@
|
|
| 1 |
FROM python:3.10-slim
|
| 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
WORKDIR /app
|
| 4 |
|
| 5 |
COPY requirements.txt requirements.txt
|
|
@@ -7,4 +20,8 @@ RUN pip install -r requirements.txt
|
|
| 7 |
|
| 8 |
COPY . .
|
| 9 |
|
|
|
|
|
|
|
|
|
|
| 10 |
CMD ["gunicorn", "--bind", "0.0.0.0:7860", "app:app"]
|
|
|
|
|
|
| 1 |
FROM python:3.10-slim
|
| 2 |
|
| 3 |
+
# Install system dependencies for Chrome/Chromium
|
| 4 |
+
RUN apt-get update && apt-get install -y \
|
| 5 |
+
wget \
|
| 6 |
+
gnupg \
|
| 7 |
+
unzip \
|
| 8 |
+
curl \
|
| 9 |
+
&& wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \
|
| 10 |
+
&& echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \
|
| 11 |
+
&& apt-get update \
|
| 12 |
+
&& apt-get install -y google-chrome-stable \
|
| 13 |
+
&& apt-get clean \
|
| 14 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 15 |
+
|
| 16 |
WORKDIR /app
|
| 17 |
|
| 18 |
COPY requirements.txt requirements.txt
|
|
|
|
| 20 |
|
| 21 |
COPY . .
|
| 22 |
|
| 23 |
+
# Create necessary directories for Selenium and webdriver-manager
|
| 24 |
+
RUN mkdir -p /tmp/selenium /tmp/webdriver-manager
|
| 25 |
+
|
| 26 |
CMD ["gunicorn", "--bind", "0.0.0.0:7860", "app:app"]
|
| 27 |
+
|
app.py
CHANGED
|
@@ -16,6 +16,8 @@ import pytz
|
|
| 16 |
from webdriver_manager.chrome import ChromeDriverManager
|
| 17 |
|
| 18 |
os.environ["SE_CACHE_PATH"] = "/tmp/selenium"
|
|
|
|
|
|
|
| 19 |
|
| 20 |
app = Flask(__name__)
|
| 21 |
CORS(app)
|
|
@@ -267,7 +269,7 @@ def seek():
|
|
| 267 |
options.add_argument("--remote-debugging-port=9222")
|
| 268 |
|
| 269 |
# Use webdriver-manager to automatically handle ChromeDriver
|
| 270 |
-
service = Service(ChromeDriverManager().install())
|
| 271 |
driver = webdriver.Chrome(service=service, options=options)
|
| 272 |
driver.get(url)
|
| 273 |
|
|
|
|
| 16 |
from webdriver_manager.chrome import ChromeDriverManager
|
| 17 |
|
| 18 |
os.environ["SE_CACHE_PATH"] = "/tmp/selenium"
|
| 19 |
+
os.environ["WDM_LOCAL"] = "1"
|
| 20 |
+
os.environ["WDM_CACHE_PATH"] = "/tmp/webdriver-manager"
|
| 21 |
|
| 22 |
app = Flask(__name__)
|
| 23 |
CORS(app)
|
|
|
|
| 269 |
options.add_argument("--remote-debugging-port=9222")
|
| 270 |
|
| 271 |
# Use webdriver-manager to automatically handle ChromeDriver
|
| 272 |
+
service = Service(ChromeDriverManager(cache_path="/tmp/webdriver-manager").install())
|
| 273 |
driver = webdriver.Chrome(service=service, options=options)
|
| 274 |
driver.get(url)
|
| 275 |
|