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("""