I just shipped a horse-racing odds tracker across 9 countries. Four totally different site architectures, zero paid proxies, zero headless browsers, zero CAPTCHAs solved. Every "protected" data source I hit turned out to be a public API hiding in plain sight. Here's what actually worked.
1. Curl before you Playwright
The instinct when you see a modern-looking racing site is to reach for a headless browser. Don't. First move is always a plain curl with a real User-Agent and a look at how much of the page is actual text vs markup:
import re
text = re.sub('<[^>]+>', ' ', html)






