CoolFace
Apppublic

Puchi01x/Court_Data_Fetcher_App

sourceHugging Facemitupdated 1y agoView on Hugging Face
1likes
app.py79 linesDownload Raw Back to root
1from flask import Flask, render_template, request2import undetected_chromedriver as uc3from selenium.webdriver.common.by import By4from selenium.webdriver.support.ui import WebDriverWait5from selenium.webdriver.support import expected_conditions as EC6from bs4 import BeautifulSoup7import sqlite38import time9import os10 11# Ensure the folder exists12DB_FOLDER = "./data"13DB_PATH = os.path.join(DB_FOLDER, "queries.db")14 15app = Flask(__name__)16 17def init_db():18    conn = sqlite3.connect("queries.db")19    c = conn.cursor()20    c.execute("""21        CREATE TABLE IF NOT EXISTS search_logs (22            id INTEGER PRIMARY KEY AUTOINCREMENT,23            case_type TEXT,24            case_number TEXT,25            case_year TEXT,26            timestamp TEXT27        )28    """)29    conn.commit()30    conn.close()31 32@app.route('/', methods=['GET', 'POST'])33def index():34    if request.method == 'POST':35        case_type = request.form['case_type']36        case_number = request.form['case_number']37        case_year = request.form['case_year']38 39        # Log to SQLite40        conn = sqlite3.connect("queries.db")41        c = conn.cursor()42        c.execute("INSERT INTO search_logs (case_type, case_number, case_year, timestamp) VALUES (?, ?, ?, datetime('now'))",43                  (case_type, case_number, case_year))44        conn.commit()45        conn.close()46 47        # Set up headless Chrome with undetected_chromedriver48        options = uc.ChromeOptions()49        options.headless = True50        options.add_argument("--no-sandbox")51        options.add_argument("--disable-dev-shm-usage")52        driver = uc.Chrome(options=options)53 54        try:55            driver.get("https://delhihighcourt.nic.in/case.asp")56            WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, 'ctype')))57            driver.find_element(By.NAME, 'ctype').send_keys(case_type)58            driver.find_element(By.NAME, 'cno').send_keys(case_number)59            driver.find_element(By.NAME, 'cyear').send_keys(case_year)60            driver.find_element(By.NAME, 'B1').click()61 62            WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, "body")))63            time.sleep(2)  # slight wait for content to load64 65            soup = BeautifulSoup(driver.page_source, 'html.parser')66            case_info = soup.get_text(strip=True)67        except Exception as e:68            case_info = f"An error occurred: {e}"69        finally:70            driver.quit()71 72        return render_template('result.html', case_info=case_info)73 74    return render_template('index.html')75 76if __name__ == '__main__':77    init_db()78    app.run(debug=True, host='0.0.0.0', port=7860)79