Crawl any website
Start URLs, scoped link following, robots.txt and crawl-delay obeyed by default. Extracts metadata, headings, OpenGraph, JSON-LD, text and links, plus per-site CSS-selector fields and item lists.
Web Harvester is a self-hosted engine for collecting web data at scale: crawl any site, collect search results, rotate proxies from any provider, and detect blocks without bypassing them. Every claim links to its evidence.
Orchestration-only figures: mock fetcher, simulated latency, zero network. They show the engine is not the bottleneck; they are not live-scraping throughput.
A general-purpose crawler and a search-results pipeline share the same workers, proxy pool, rate limiter, block detection and storage.
Start URLs, scoped link following, robots.txt and crawl-delay obeyed by default. Extracts metadata, headings, OpenGraph, JSON-LD, text and links, plus per-site CSS-selector fields and item lists.
Structured organic results, featured snippets, "people also ask" and AI Overviews, direct or through a SERP API provider, with drift detection when page layouts stop matching.
Round-robin, random or success-weighted rotation, escalating cooldowns, live reload that keeps health history, and any HTTP(S) proxy provider.
Per-proxy and per-host token buckets that slow down on pressure and honour Retry-After exactly.
CAPTCHAs, challenges, consent walls and rate limits are classified and reported. The affected proxy is cooled down; access controls are not bypassed.
Fetch with Go's HTTP client, render with Playwright, or run hybrid: start fast over HTTP and fail over to a real browser only where a page needs it.
Redis Streams queue, PostgreSQL or JSON Lines, Prometheus and Grafana, Docker Compose and systemd.
Swap the queue, fetcher or sink without touching the rest. The job API only ever produces work, so acquisition logic cannot leak into submission.
The repository includes a small, auditable runner that measures a residential or mobile provider the way a scraper experiences it, and a protocol for turning that into a defensible report.
A two-phase evaluation of residential and mobile proxy pools using Web Harvester. Results are specific to these test conditions.
What we learned: Renewed sticky sessions were faster in every comparison. A single long-lived sticky session performed worse on the tested protected page, with 16–49 usable responses per 100-request run before HTTP 4xx responses. Mobile state geolocation is less conclusive because carrier gateways can appear in a different state.
Reproducible with one command, with results linked to their supporting evidence.
A 50-query evaluation split evenly between easy and difficult searches, including a complex multi-leg flight query.
Scope: This evaluation measures result mapping and latency, not semantic relevance, answer correctness, direct Google scraping, or proxy performance. One difficult query returned no mapped organic results.
A bounded integration run connected an external search provider, fetched source pages through the configured proxy, compared discovery results against Deal Intelligence's visible canonical dataset, and generated a review artifact. The workflow and its regression checks completed successfully.
Integration verified: the third-party search connection, source-page acquisition path, live dataset comparison and review-artifact generation all completed successfully. The run was review-only and made no production database changes. This is a bounded integration validation. Comprehensive market coverage and analyst verification are separate evaluation steps.
View the successful workflow run → · Full integration results →
I build, measure and harden web data pipelines. Engagements are scoped up front, with a fixed deliverable and a written report.
An independent, reproducible evaluation of a residential or mobile proxy network.
Custom crawlers and extraction on this engine, wired into your stack.
Make an existing collection system reliable and observable under real load.