r/softwarearchitecture • u/Leading_Layer_546 • 3h ago
Discussion/Advice Can’t reliably get local store prices in Bahrain
We’re a small team building an app that compares two perfumes side by side: price, reviews, specs and a short pros/cons for each.
Prices are where it falls apart. Popular perfumes are listed on plenty of local store sites with the BHD price right on the page, and we still miss them more than we should. Often it’s one-sided: same comparison, Sauvage gets a price and Bleu de Chanel gets “no confirmed price yet” (screenshot).
Current flow (Python): search for the product, pick likely store pages, fetch them, read JSON-LD / OpenGraph / microdata (plus Shopify and Woo JSON where we can), fall back to an LLM. The whole comparison gets roughly 25 seconds.
Tried: curl_cffi with Chrome impersonation (best results, and free), Playwright, patchright, crawl4ai, Firecrawl, Scrape.do, Zyte, Bright Data, and Claude with its web search tool on top. Still comes back empty way too often.
And if a user pastes the two product links or uploads photos of the bottles instead of typing names, it often just dies. Timeout, or nothing comes back.
What I suspect:
Our server is in Singapore. From my home connection here, curl_cffi alone got the price on about 8 in 10 Gulf store pages we tested. Maybe local stores treat a datacenter IP very differently (redirects, other currency, blocks)?
JS-heavy brand sites eat the whole 25 seconds, so the slower product just loses.