Three jobs scrape Smyths at the same time, each for a different reason. They were on separate tabs; here they are side by side. Numbers are live — ….
gemini-3.1-flash-lite (+ escalation). → detailqwen3-vl-32b. → detailStatus: Production day 1 is complete — 2,974/3,000 (99.1%); the 26 misses are pages with no product data, not captcha or block failures. After the original wedge the run was made crash-proof (short capped passes + per-pass watchdog). Day 2 is now running in the Linux worker container — the production Docker image (Tor + Xvfb + Chrome), so there's no on-screen browser to stall. The exit study (qwen3-vl-32b) and the 4-arm shootout remain a day-1 / one-shot sample.
Same target (3,000 URLs/day, every region, over Tor), different jobs — so some columns only one of them measures. Production is on day 2 (day 1 complete, 2,974/3,000); the exit study is a day-1 sample.
⚠ Day 2: 36 of 3,000 didn't yield a product — see the full report ›| run | status | URLs done | exits | captcha rate | doodles met / solved | pages parsed OK | pace |
|---|---|---|---|---|---|---|---|
| loading… |
A one-shot comparison: each method scrapes the same sample on its own Tor, in parallel. Captchas only show on the rare hostile exit, so "doodles met" is small — that's where the methods actually differ. Full breakdown ›
| method | status | URLs | exits | doodles met / solved | pages parsed OK | pace |
|---|---|---|---|---|---|---|
| loading… |
The same real puzzles through every candidate. Green = the correct doodle; red = where the model clicked. Overlap = hit, scattered red = miss — usually the cheaper models find the doodles but order them wrong.
Every one was opened by hand in a normal residential browser. None is a live product the scraper missed — each is a discontinued/delisted toy whose old URL now redirects away (to a category, the brand page, “all items”, or the region homepage). The scraper reached every page; there was simply no product on it.
| # | Product (at scrape time) | Region | What the dead URL does now |
|---|
Smoking gun: the Schleich “Steintriceratops 70828” is here 3× (CH, DE, AT) and the Siku 5510 twice — the same SKU dead in every region. A parser bug would fail randomly; the same product failing everywhere means the product is gone, not the scraper.
Pipeline: all 36 are written to day2_errors.jsonl with a category + full attempt history, shaped for the worker's error format — nothing vanishes silently. Caveat: a discontinued product currently logs as data_extraction (same bucket as a genuine parse failure), because the fetch follows the redirect to a 200 page. We can add a distinct discontinued category by checking the post-redirect URL.