Anti-scraping protection for catalogue and pricing pages
Scraping reads your catalogue at a rate and coverage no reader produces: every SKU, every price, once a day.
How a scraping run works
A scraper walks your pagination and calls search and filter endpoints with generated query strings. Cheap ones are a Scrapy spider on cloud hosts, expensive ones headless Chrome through residential proxies.
How PrivCaptcha stops scraping
Four steps, with the numbers the server uses. Nothing here is configured by you.
The header set prices the first page
Scoring starts at 20. A matched crawler user-agent adds 40, Accept-Language 15. 20 + 40 + 15 = 75: level 4.
Level 4 tolerances on every page
Level 4, and the client cannot lower it. 10 shapes, 6 pixels, 10 degrees. Proof-of-work rises to 18 bits: 16 times the hashing.
Careful crawlers start at the floor
Real Chrome headers start at 20, level 2. Failures add 8 points each, capped at 40. A fresh proxy IP resets it.
One token, one response
One token per challenge, and it buys one result set, not the run. Solve caps at 10 requests per second per IP.
Add PrivCaptcha to your search or export endpoint in two lines of code
Script tag, container in front of the submit button, and your existing verify call. Already on reCAPTCHA or hCaptcha? That backend code stays exactly as it is.
On routes a scraper cannot avoid but readers touch rarely: search submit, export. Not catalogue pages.
Verify the token server-to-server at /api/v1/siteverify before the query. Decide how many rows one token buys.
Mistake: gating the render, not the response. The rows are already in the HTML. Serialise only after verify succeeds.
What this does not solve about scraping
Captchas do nothing for pages not behind them, or against a solve farm. A proxy pool keeps the score near the floor.
Common questions about scraping
How PrivCaptcha prices scraping, and what it does not do about it.
Put PrivCaptcha in front of your search or export endpoint
10,000 verifications a month are free, and the integration is the one you already have.