import re, subprocess, json, time, os UA = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36" CK = "/tmp/lg_c.txt" CASES = [ ("Littlefield", "Littlefield", "64471-3"), ("Kovacs", "Kovacs", "60035-0"), ("Chumbley", "Chumbley", "72539-0"), ("Short", "Short", "61176-9"), ("Borghi", "Gilroy", "80925-9"), ("Elam", "Elam", "48219-5"), ("Konzen", "Konzen", "50402-4"), ("Witte", "Witte", "29341"), ("Skarbek", "Skarbek", "18013-1-III"), ("PearsonMaines", "Pearson-Maines", "29873-9-I"), ("Olivares", "Olivares", "28758-3-I"), ("Sedlock", "Sedlock", "28848-2-I"), ("Glorfield", "Glorfield", "3410-1-III"), ("Hadley", "Hadley", "44308"), ("Mueller", "Mueller", "57592-9-I"), ("White", "White", "23917-5-II"), ("Schwarz", "Schwarz", "32274-2-III"), ("Kraft", "Kraft", "58247-5"), ("Berol", "Berol", "31379"), ("Brewer", "Brewer", "66577-0"), ("Brown", "Brown", "49548-3"), ] def curl(url, cookie_file=None, write=False, get_params=None): cmd = ["curl", "-s", "-m", "40", "-H", f"User-Agent: {UA}"] if cookie_file: cmd += ["-b", cookie_file, "-c", cookie_file] if get_params: cmd += ["-G"] for k, v in get_params.items(): cmd += ["--data-urlencode", f"{k}={v}"] cmd.append(url) r = subprocess.run(cmd, capture_output=True, text=True, timeout=50) return r.stdout def leagle_search(query): h = curl("https://www.leagle.com/leaglesearch", cookie_file=CK, get_params={"casen": query, "crt": "Washington"}) results = [] for m in re.finditer(r']*>\s*

([^<]+)\(\s*([^<]+)\s*\)\s*

\s*

(.*?)

', h, re.S): did, name, date, info = m.group(1), m.group(2).strip(), m.group(3).strip(), m.group(4) info = re.sub(r'<[^>]+>', ' ', info) info = re.sub(r'\s+', ' ', info).strip() results.append({"id": did, "name": name, "date": date, "info": info}) return results # ensure cookies curl("https://www.leagle.com/search", cookie_file=CK) time.sleep(1) all_res = {} for key, query, docket in CASES: rs = leagle_search(query) picked = None # prefer docket match for r in rs: if docket.replace("-", "") in r["info"].replace("-", "").replace(" ", ""): picked = r; break if not picked: for r in rs: n = r["name"].lower() if key.lower() in n and ("marriage" in n or "estate" in n or key.lower() == "berol"): picked = r; break all_res[key] = picked print(key, "=>", (picked["id"], picked["date"], picked["info"][:70]) if picked else f"NOT FOUND ({len(rs)} results)") time.sleep(3) json.dump(all_res, open("/Users/drjones/astraea-books/.case-verify/leagle/leagle_urls.json", "w"), indent=1) print("saved")