Spaces:
Runtime error
Runtime error
import requests | |
import gradio as gr | |
from bs4 import BeautifulSoup | |
from rich import print | |
from urllib.parse import urlparse | |
import re | |
from googlesearch import search | |
from urllib.parse import parse_qs | |
from selenium import webdriver | |
from selenium.webdriver.common.keys import Keys | |
from selenium.webdriver.common.by import By | |
import time | |
from selenium.webdriver.chrome.options import Options | |
opt = Options() | |
opt.add_argument('--headless') | |
driver = webdriver.Chrome(options=opt) | |
def google_search_with_time_filter(query, start_date, end_date): | |
# Mở trang Google | |
driver.get("https://www.google.com") | |
# Tìm thanh tìm kiếm và nhập từ khóa | |
search_box = driver.find_element(By.NAME, "q") | |
search_box.send_keys(query) | |
search_box.send_keys(Keys.RETURN) | |
# Nhấn vào nút "Công cụ" | |
tools_button = driver.find_element(By.XPATH, "//div[@aria-label='Công cụ']") | |
tools_button.click() | |
# Nhấn vào nút "Bất kỳ lúc nào" | |
any_time_button = driver.find_element(By.XPATH, "//div[text()='Bất kỳ lúc nào']") | |
any_time_button.click() | |
# Chọn phạm vi thời gian | |
custom_range_button = driver.find_element(By.XPATH, "//li//span[text()='Phạm vi tùy chỉnh']") | |
custom_range_button.click() | |
# Nhập ngày bắt đầu và ngày kết thúc | |
start_date_input = driver.find_element(By.XPATH, "//input[@aria-label='Ngày bắt đầu']") | |
end_date_input = driver.find_element(By.XPATH, "//input[@aria-label='Ngày kết thúc']") | |
start_date_input.send_keys(start_date) | |
end_date_input.send_keys(end_date) | |
end_date_input.send_keys(Keys.RETURN) | |
# Đợi trang tải kết quả | |
time.sleep(2) | |
# Lấy các kết quả | |
results = driver.find_elements(By.CLASS_NAME, "tF2Cxc") | |
# Hiển thị kết quả | |
for result in results[:5]: # Lấy 5 kết quả đầu tiên | |
title = result.find_element(By.TAG_NAME, "h3").text | |
link = result.find_element(By.TAG_NAME, "a").get_attribute("href") | |
print(f"Title: {title}") | |
print(f"Link: {link}") | |
print('-' * 80) | |
# Thực hiện tìm kiếm với bộ lọc thời gian | |
google_search_with_time_filter("Python programming", "01/01/2023", "12/31/2023") | |
# Đóng trình duyệt sau khi hoàn tất | |
driver.quit() | |
def run_lora(prompt,site,start,end): | |
url = ("https://www.google.com/search?q=inurl:" +site + " " +prompt + "&tbs=cdr%3A1%2Ccd_min%3A"+start+"%2Ccd_max%3A" + end) | |
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'} | |
response = requests.get(url, headers=headers) | |
soup = BeautifulSoup(response.content) | |
# Tìm tất cả các liên kết trong kết quả tìm kiếm | |
results = soup.find_all('a') | |
print(results) | |
mLink="" | |
# Lọc và hiển thị các liên kết | |
for link in soup.find_all("a",href=re.compile("(?<=/url\?q=)(htt.*://.*)")): | |
print (re.split(":(?=http)",link["href"].replace("/url?q=",""))) | |
mLink+=str(re.split(":(?=http)",link["href"].replace("/url?q=","").replace("'",""))) | |
# Lọc theo ngày tháng (nếu ngày tháng được cung cấp trong kết quả) | |
date_elements = soup.find_all('span', class_='f') | |
for date_elem in date_elements: | |
date_text = date_elem.text | |
try: | |
# Kiểm tra định dạng ngày tháng và so sánh | |
date = datetime.strptime(date_text, '%m-%d-%Y') # Ví dụ: '23 August 2024' | |
if start <= date.strftime('%m-%d-%Y') <= end: | |
print(f"Date: {date_text}") | |
except ValueError: | |
# Bỏ qua các định dạng ngày tháng không thể phân tích | |
pass | |
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] | |
def make_url(query,start,end): | |
return f"https://www.google.com/search?q={query}&rlz=1C1CHBF_enUS1024US1025&biw=1564&bih=932&sxsrf=ALiCzsaGPneyPAo-kyllnxBBtXe-FGWorQ%3A1665448856808&source=lnt&tbs=sbd%3A1%2Ccdr%3A1%2Ccd_min%3A{start}%2Ccd_max%3A{end}&tbm=nws" | |
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(google_search_with_time_filter, inputs=["site:" + input_sitebox +" " + input_textbox,start,end],outputs=[translated_textbox]) | |
app.queue() | |
app.launch() |