File size: 1,114 Bytes
7d36ab6
 
 
 
 
728d8c4
 
7d36ab6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8d72a25
7d36ab6
 
 
 
 
 
 
3289878
ba95aba
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import gradio as gr

def capture_webpage_screenshot(url):
    save_path = "screenshot.png"
    # ChromeDriver๋ฅผ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
    service = Service(ChromeDriverManager().install())
    options = webdriver.ChromeOptions()
    # ํ•„์š”ํ•œ ๊ฒฝ์šฐ, headless ๋ชจ๋“œ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    options.add_argument('--headless')
    options.add_argument('--disable-gpu')  # GPU ์‚ฌ์šฉ ๋น„ํ™œ์„ฑํ™”
    options.add_argument('window-size=1200x600')  # ์œˆ๋„์šฐ ํฌ๊ธฐ ์„ค์ •
    
    # WebDriver ์ดˆ๊ธฐํ™”
    driver = webdriver.Chrome(service=service, options=options)
    
    # ์ฃผ์–ด์ง„ URL๋กœ ์ด๋™
    driver.get(url)
    
    # ์Šคํฌ๋ฆฐ์ƒท ์บก์ฒ˜ ๋ฐ ์ €์žฅ
    driver.save_screenshot(save_path)
    
    # WebDriver ์ข…๋ฃŒ
    driver.quit()
    return save_path


with gr.Blocks() as demo:
    txt = gr.Textbox()

    btn = gr.Button()
    img = gr.Image()
    btn.click(capture_webpage_screenshot, [txt], [img])


demo.launch()