thomas-schillaci commited on
Commit
ab49d88
·
1 Parent(s): 2cbb2ea

Add webpage load timeout

Browse files
Files changed (1) hide show
  1. app.py +10 -4
app.py CHANGED
@@ -6,6 +6,7 @@ import streamlit as st
6
  from PIL import Image
7
  from google.genai import Client, types
8
  from selenium import webdriver
 
9
  from selenium.webdriver.chrome.options import Options
10
  from selenium.webdriver.chrome.service import Service
11
  from webdriver_manager.chrome import ChromeDriverManager
@@ -22,18 +23,20 @@ def take_screenshot(url):
22
  options.add_argument("--headless")
23
  options.add_argument("--disable-gpu")
24
  options.add_argument("--start-maximized")
 
25
  driver = webdriver.Chrome(service=Service(ChromeDriverManager(chrome_type="chromium").install()), options=options)
 
 
26
  driver.get(url)
27
 
28
- sleep(3) # Wait for the page to render
29
-
30
  total_height = driver.execute_script("return document.body.scrollHeight")
31
  driver.set_window_size(1280, total_height)
 
32
  screenshot_png = driver.get_screenshot_as_png()
33
  driver.quit()
 
34
  image = Image.open(io.BytesIO(screenshot_png))
35
- image = image.convert("RGB")
36
- return image
37
 
38
 
39
  def sanitize_url(url):
@@ -61,6 +64,9 @@ def roast(url):
61
 
62
  try:
63
  image = take_screenshot(url)
 
 
 
64
  except:
65
  st.error("Invalid URL.")
66
  return
 
6
  from PIL import Image
7
  from google.genai import Client, types
8
  from selenium import webdriver
9
+ from selenium.common import TimeoutException
10
  from selenium.webdriver.chrome.options import Options
11
  from selenium.webdriver.chrome.service import Service
12
  from webdriver_manager.chrome import ChromeDriverManager
 
23
  options.add_argument("--headless")
24
  options.add_argument("--disable-gpu")
25
  options.add_argument("--start-maximized")
26
+
27
  driver = webdriver.Chrome(service=Service(ChromeDriverManager(chrome_type="chromium").install()), options=options)
28
+ driver.set_page_load_timeout(10)
29
+ driver.implicitly_wait(10)
30
  driver.get(url)
31
 
 
 
32
  total_height = driver.execute_script("return document.body.scrollHeight")
33
  driver.set_window_size(1280, total_height)
34
+
35
  screenshot_png = driver.get_screenshot_as_png()
36
  driver.quit()
37
+
38
  image = Image.open(io.BytesIO(screenshot_png))
39
+ return image.convert("RGB")
 
40
 
41
 
42
  def sanitize_url(url):
 
64
 
65
  try:
66
  image = take_screenshot(url)
67
+ except TimeoutException:
68
+ st.error("Website timed out.")
69
+ return
70
  except:
71
  st.error("Invalid URL.")
72
  return