import requests from playwright.sync_api import sync_playwright BASE = "https://giantfood.com" ACCOUNT_PAGE = f"{BASE}/account/history/invoice/in-store" USER_ID = "369513017" LOYALTY = "440155630880" def get_session(): with sync_playwright() as p: browser = p.firefox.launch(headless=False) page = browser.new_page() page.goto(ACCOUNT_PAGE) print("log in manually in the browser, then press ENTER here") input() cookies = page.context.cookies() ua = page.evaluate("() => navigator.userAgent") browser.close() s = requests.Session() s.headers.update({ "user-agent": ua, "accept": "application/json, text/plain, */*", "referer": ACCOUNT_PAGE, }) for c in cookies: domain = c.get("domain", "").lstrip(".") or "giantfood.com" s.cookies.set(c["name"], c["value"], domain=domain) return s def test_history(session): url = f"{BASE}/api/v6.0/user/{USER_ID}/order/history" r = session.get( url, params={ "filter": "instore", "loyaltyNumber": LOYALTY, }, ) print("status:", r.status_code) print() data = r.json() print("orders found:", len(data.get("records", []))) print() for rec in data.get("records", [])[:5]: print(rec["orderId"], rec["orderDate"], rec["orderTotal"]) if __name__ == "__main__": session = get_session() test_history(session)