Spaces:
Sleeping
Sleeping
update
Browse files- app/server.py +15 -24
app/server.py
CHANGED
@@ -4,11 +4,11 @@ from fastapi import FastAPI, Request, Form
|
|
4 |
from fastapi.responses import HTMLResponse, JSONResponse, FileResponse
|
5 |
from fastapi.staticfiles import StaticFiles
|
6 |
from fastapi.templating import Jinja2Templates
|
7 |
-
from helium import start_chrome, kill_browser,
|
8 |
-
from selenium import webdriver
|
9 |
import uuid
|
10 |
import logging
|
11 |
import pathlib
|
|
|
12 |
|
13 |
# Configure logging
|
14 |
logging.basicConfig(level=logging.INFO)
|
@@ -51,34 +51,25 @@ async def take_screenshot(url: str = Form(...)):
|
|
51 |
logger.info(f"HOME env: {os.environ.get('HOME')}")
|
52 |
logger.info(f"Current working directory: {os.getcwd()}")
|
53 |
|
54 |
-
#
|
55 |
-
# Créer les options Chrome à la manière Selenium
|
56 |
-
chrome_options = webdriver.ChromeOptions()
|
57 |
-
chrome_options.add_argument('--headless')
|
58 |
-
chrome_options.add_argument('--no-sandbox')
|
59 |
-
chrome_options.add_argument('--disable-setuid-sandbox')
|
60 |
-
chrome_options.add_argument('--disable-dev-shm-usage')
|
61 |
-
chrome_options.add_argument('--disable-accelerated-2d-canvas')
|
62 |
-
chrome_options.add_argument('--no-first-run')
|
63 |
-
chrome_options.add_argument('--no-zygote')
|
64 |
-
chrome_options.add_argument('--single-process')
|
65 |
-
chrome_options.add_argument('--disable-gpu')
|
66 |
-
|
67 |
-
# Take the screenshot with Helium
|
68 |
logger.info("Launching Chrome browser")
|
69 |
-
|
70 |
-
driver = start_chrome(url, headless=True, options=chrome_options)
|
71 |
-
|
72 |
-
logger.info("Browser launched successfully")
|
73 |
|
74 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
logger.info(f"Taking screenshot at {filepath}")
|
76 |
-
|
77 |
-
selenium_driver = get_driver()
|
78 |
-
selenium_driver.save_screenshot(filepath)
|
79 |
logger.info(f"Screenshot saved to {filepath}")
|
80 |
finally:
|
81 |
-
#
|
82 |
kill_browser()
|
83 |
logger.info("Browser closed")
|
84 |
|
|
|
4 |
from fastapi.responses import HTMLResponse, JSONResponse, FileResponse
|
5 |
from fastapi.staticfiles import StaticFiles
|
6 |
from fastapi.templating import Jinja2Templates
|
7 |
+
from helium import start_chrome, kill_browser, go_to
|
|
|
8 |
import uuid
|
9 |
import logging
|
10 |
import pathlib
|
11 |
+
import time
|
12 |
|
13 |
# Configure logging
|
14 |
logging.basicConfig(level=logging.INFO)
|
|
|
51 |
logger.info(f"HOME env: {os.environ.get('HOME')}")
|
52 |
logger.info(f"Current working directory: {os.getcwd()}")
|
53 |
|
54 |
+
# Lancer Chrome avec des options simples
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
logger.info("Launching Chrome browser")
|
56 |
+
driver = start_chrome(headless=True)
|
|
|
|
|
|
|
57 |
|
58 |
try:
|
59 |
+
# Aller à l'URL
|
60 |
+
logger.info(f"Navigating to URL: {url}")
|
61 |
+
go_to(url)
|
62 |
+
|
63 |
+
# Attendre que la page soit chargée
|
64 |
+
logger.info("Waiting for page to load")
|
65 |
+
time.sleep(3)
|
66 |
+
|
67 |
+
# Prendre la capture d'écran
|
68 |
logger.info(f"Taking screenshot at {filepath}")
|
69 |
+
driver.save_screenshot(filepath)
|
|
|
|
|
70 |
logger.info(f"Screenshot saved to {filepath}")
|
71 |
finally:
|
72 |
+
# Toujours fermer le navigateur
|
73 |
kill_browser()
|
74 |
logger.info("Browser closed")
|
75 |
|