Troubleshooting
Start from what you can see. Each page answers one question and says plainly where the answer is a documented hypothesis rather than something we have confirmed.
- why does my scraper get 403Scraper returns 403Only one outcome actually gives you back a 403. Here is what the other two look like instead, and why.
- scraper returns 200 but body is a captcha200 response with a captcha pageA 200 status is not proof of content. Here is the outcome that catches the gap, and what it actually checks for.
- playwright still gets the cloudflare challenge pageCloudflare challenge page in PlaywrightWhat rendering JavaScript changes about a Cloudflare interstitial, and what it doesn't.
- how to detect a datadome blockDataDome block detectionWhat the datadome rule actually matches, and what to do once it fires.