querysurvey / app.py
adpro's picture
Update app.py
d803a0c verified
raw
history blame
2.25 kB
import requests
import gradio as gr
from bs4 import BeautifulSoup
from rich import print
from urllib.parse import urlparse
from urllib.parse import parse_qs
def run_lora(prompt,site,start,end):
# to search
query = "Python programming"
url = f"https://www.google.com/search?q=inurl:{site}+{prompt}&tbs=cdr%3A1%2Ccd_min%3A{start}%2Ccd_max%3A {end}"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
print(soup)
links = soup.findAll("a")
mLink=""
extract_results(soup)
def extract_results(soup):
main = soup.select_one("#main")
res = []
for gdiv in main.select('.g, .fP1Qef'):
res.append(extract_section(gdiv))
return res
def extract_section(gdiv):
# Getting our elements
title = gdiv.select_one('h3')
link = gdiv.select_one('a')
description = gdiv.find('.BNeawe')
return {
# Extract title's text only if text is found
'title': title.text if title else None,
'link': extract_href(link['href']) if link else None,
'description': description.text if description else None
}
def extract_href(href):
url = urlparse(href)
query = parse_qs(url.query)
if not ('q' in query and query['q'] and len(query['q']) > 0):
return None
return query['q'][0]
with gr.Blocks() as app:
gr.HTML("""<html>
<head>
<style>
h1 {
text-align: center;
}
</style>
</head>
<body>
<h1>Get survey</h1>
</body>
</html>""")
with gr.Row():
with gr.Column():
input_textbox = gr.Textbox(lines=5, placeholder="Enter key", label="Input Text")
input_sitebox = gr.Textbox(lines=5, placeholder="Enter site", label="Site Text")
start = gr.Textbox(lines=5, placeholder="Enter start", label="Enter start")
end = gr.Textbox(lines=5, placeholder="Enter End", label="Enter End")
with gr.Column():
translated_textbox = gr.Textbox(lines=5, placeholder="", label="Result Text")
info_label = gr.HTML("")
btn = gr.Button("GetNow")
btn.click(run_lora, inputs=[input_textbox,input_sitebox,start,end],outputs=[translated_textbox])
app.queue()
app.launch()