David Lewin David Lewin
Proxies & Web Scraping

How to scrape product prices and inventory from Amazon and Walmart without Cloudflare or CAPTCHA blocks

Disclosure: some links in this guide are affiliate links. If you sign up through them, I may earn a commission at no extra cost to you. How this site makes money.

Short answer

Standard HTTP requests fail against Cloudflare Turnstile and Akamai because of TLS JA3/JA4 fingerprinting. To scrape reliably at scale, use either a managed Web Unlocker API (Bright Data / Oxylabs) or rotate residential proxies per request with a TLS-spoofed client like curl_cffi.

"Trying to scrape Amazon or Walmart with basic Python `requests` and datacenter proxies will get you 503 CAPTCHA pages on your third request. After building a real-time price monitor for 50,000 SKUs, here is the exact architecture that delivers 99.9% success."

Why Standard Python Scrapers Get Blocked

Anti-bot firewalls inspect the TLS ClientHello handshake (JA3/JA4) before your HTTP headers even arrive. Python's standard urllib3 and requests libraries have a distinct cipher suite order that Cloudflare blocks instantly.

The Two Production Solutions

  • Path 1: Managed Web Unlocker / Scraper APIs (Zero Maintenance): Point your script at Bright Data Web Unlocker or Oxylabs E-Commerce Scraper API. They automatically manage browser TLS signatures, residential IP rotation, header ordering, and CAPTCHA solving—you only pay for HTTP 200 successful responses.
  • Path 2: DIY Rotating Residential + TLS Impersonation: Combine rotating residential gateways from Decodo or SOAX with Python's curl_cffi library (impersonating Chrome 124 TLS handshakes).
Pro tip

Always test your proxy exit IP on IPQualityScore.com and BrowserLeaks.com before running production traffic or logging into sensitive accounts.

David Lewin
David Lewin

Founder of StealthScale.io and e-commerce infrastructure engineer writing field-tested playbooks on proxies, cloud VPS, anti-detect browsers and SEO.