{"id":"web-scrape","slug":"web-scrape","name":"Web scraping / page fetch","shortName":"Web scraping / page fetch","problemStatement":"Fetch and clean web content for agents.","whenNotTopPick":"Hard anti-bot enterprise — Bright Data. Interactive multi-step — Browserbase.","categoryIds":["cat-search-scrape"],"depotPickProviderId":"firecrawl","depotPickRationale":"dx for LLM-ready output + capability.","runnersUpIds":["scrapingbee","bright-data","browserbase","scrapfly","zenrows","apify","jina","diffbot"],"weights":{"capabilityFit":0.25,"pricePerformance":0.18,"latencyReliability":0.15,"developerDx":0.15,"privacyPosture":0.1,"lockInRisk":0.07,"maturity":0.1},"methodologyNotes":"dx for LLM-ready output + capability.","tags":["web"],"depth":{"whenNotToUse":{"text":"Hard anti-bot enterprise — Bright Data. Interactive multi-step — Browserbase.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"scrapingbee","name":"ScrapingBee","overallForJob":7.98,"pickOverallForJob":8.25,"beatsPickOn":["pricePerformance","lockInRisk","maturity"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":4.5,"runnerUpLockInRisk":4,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":[],"runnerUpExitSignals":[],"pickNotes":[],"selfHostFallback":[{"id":"crawl4ai","name":"Crawl4AI","license":"Apache-2.0 plus attribution requirement","sourceUrl":"https://raw.githubusercontent.com/unclecode/crawl4ai/main/LICENSE"}],"migration":"Runner-up ScrapingBee has lower stored lock-in risk (4 vs 4.5, 0–10, higher = more lock-in). Self-host fallback listed for this job: Crawl4AI.","migrationReason":null,"derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"freshness":{"pick":{"score":{"asOf":"2026-10-19","ageDays":8,"stale":false,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-10-19","ageDays":8,"stale":false,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","sourceUrls":1,"sourcesReachable":1,"pricingRows":4,"pricingRowsReconfirmed":0,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}}}}