Minimal Google SERP scraper & benchmark tool with Playwright. CLI & Docker, VNC optional.
215
Minimal Google SERP scraper and benchmarking CLI built on Playwright. Ships headless by default with optional headful viewing over VNC. Includes Chromium/Firefox/WebKit browsers.
latest — Playwright v1.55 on Ubuntu 22.04 (Jammy). See Dockerfile.docker run --rm -it <image> --json "best coffee makers"docker run --rm -it <image> -n 5 --hl en --gl US "web scraping with playwright"docker run --rm -it <image> --proxy http://user+country=us:pass@host:port "your query"Replace <image> with your published image (e.g., yourorg/serp).
docker run --rm -it -p 5900:5900 -e HEADFUL=1 <image> --headful --keep-open "best coffee makers"-e VNC_PASSWORD=secretlocalhost:5900 (use password if set).HEADFUL=0|1, DISPLAY=:99, SCREEN_WIDTH=1920, SCREEN_HEIGHT=1080, SCREEN_DEPTH=24, VNC_PORT=5900, VNC_PASSWORD=<string>, TZ (default America/New_York).serp-bench)docker run --rm -it \
-p 5900:5900 -e HEADFUL=1 \
-v "$(pwd)/bench_out:/app/bench_out" \
-v "$(pwd)/examples/proxies.example.json:/app/proxies.json:ro" \
-v "$(pwd)/examples/queries.example.txt:/app/queries.txt:ro" \
<image> serp-bench --proxies /app/proxies.json --queries /app/queries.txt -c 1,5,10 --plateau-sec 60 --hl en --gl US
report.html under bench_out/<timestamp>/.--headful (no --keep-open for bench).serp-n, --num <N> (default 10)--hl <lang> (default en), --gl <cc>, --domain <host> (default google.com)--tbs qdr:d|qdr:w|qdr:m--browser chromium|firefox|webkit (default chromium)--headful and optionally --keep-open--proxy <http://...>; username may include modifiers like +country=us--result-timeout-sec <N> (default 5), --nav-timeout-ms <N> (default 3000)--use-system-proxy (disabled by default)--jsonserp-bench--proxies <file> (JSON array of { name, proxy }), --queries <file> (one per line)-c, --concurrency <list> (e.g., 1,5,10), --plateau-sec <N> per stage--result-timeout-sec <N>, --nav-timeout-ms <N>--browser <name>, --headful-o, --out <dir> (default bench_out/<timestamp>)--baseline <vendorName>__UUID__ in username/password to auto-generate a fresh UUID.
--proxy http://user+session_id=__UUID__:pass@host:portserp: one UUID per invocation; serp-bench: new UUID per request.host.docker.internal:
[{ "name": "instill", "proxy": "http://user+session_id=__UUID__:[email protected]:8080" }]
/usr/local/bin/docker-entrypoint.shserpdocker run … <image> serp-bench …5900/tcp (VNC when HEADFUL=1)-v "$(pwd)/bench_out:/app/bench_out"/app and reference by that path (e.g., /app/proxies.json, /app/queries.txt).--headful to inspect.mcr.microsoft.com/playwright:v1.55.0-jammy. Browsers run as non-root pwuser.MIT
Content type
Image
Digest
sha256:d540af702…
Size
849.1 MB
Last updated
about 1 year ago
docker pull skopac/serp:1.0