terra1 / app.py
flatindo's picture
Update app.py
9ea10fc
raw
history blame
1.96 kB
import gradio as gr
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
from PIL import Image
from io import BytesIO
import openai
api_key = "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"
openai.api_key = api_key
def web_scrape(url):
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
try:
wd = webdriver.Chrome(options=options)
wd.set_window_size(1080, 720) # Adjust the window size here
wd.get(url)
wd.implicitly_wait(10)
page_title = wd.title.replace("Stock Photo | Adobe Stock", "").strip()
#content_value = meta_element.get_attribute("name")
prompts = [
f"Please make 3 best microstock titles with {page_title}",
]
titles = []
for prompt in prompts:
response = openai.Completion.create(
engine="text-davinci-002",
prompt=prompt,
max_tokens=30, # Adjust max_tokens as needed
n=3, # Generate 3 titles
stop=None, # You can specify stop words to end the titles if needed
)
generated_titles = [choice['text'] for choice in response['choices']]
titles.extend(generated_titles)
return "\n".join(titles)
#return meta_element
except WebDriverException as e:
return "error handle website"
finally:
if wd:
wd.quit()
return Image.open(BytesIO(screenshot))
iface = gr.Interface(
fn=web_scrape,
inputs=gr.inputs.Textbox(label="Website URL", default="https://stock.adobe.com/stock-photo/id/621214874"),
outputs=gr.outputs.Textbox(label="Web Content"),
title="Web Scraping with Selenium (Body Tag)",
description="Scrape the content of a website's <body> tag using Selenium.",
)
iface.launch()