
Google 搜索 Scraper
A free, open-source Google Search scraper for Python. Get structured SERP data through a real Chrome browser and your NodeMaven residential proxy



How the Google search scraper 有效
Four steps run for every proxy exit. The run summary and per-step timings show each one
01
The scraper opens a sticky proxy session and a fresh browser profile. Chrome then visits a few ordinary pages and stays on each for 20 to 45 seconds. A fresh warm-up uses about 60 MB, so the first query takes a few minutes. Later queries on the same exit take seconds
02
Each query opens Google's results page directly. This is faster than typing in the search box and skips autocomplete traffic
03
Every page is classified first. A captcha or a refused page is reported as one. It is never parsed as an empty result
04
An exit Google serves is reused for the next queries. A refused exit is dropped, and the query is retried on a new one. If exits keep getting refused, the run stops instead of spending more traffic
How to start scraping Google 搜索结果
Three steps from install to your first JSON file. The exact commands are in the README on GitHub
安装
Connect NodeMaven
Run your first search
Google search scraper features
Everything runs on your machine, through NodeMaven proxies. Every page shows what it cost and whether Google served it
Transparent costs per Google search
Cost per search
Benchmarks from the README for version 0.0.6. Multiply the traffic by your NodeMaven price per GB to get the cost of 1,000 searches
Cookie copies
New exits start from the cookies of an exit Google already serves. A copy costs a few MB instead of a full warm-up. It waits 40 to 60 seconds before its first search
Long runs
Served exits stay in use for hundreds of queries. Regular browser restarts keep memory flat over long holds
Why scrape Google with a real browser
Google often expects a browser that runs JavaScript. A fresh browser on a fresh proxy exit can be refused quickly. That changes how a Google scraper has to work
A script sends raw requests and parses whatever HTML comes back. Google often expects JavaScript, so responses are unreliable. A refused page can be parsed as an empty result. You cannot tell "no results" from "refused"
The Google Search Scraper approach
Each search runs in real Chrome on a sticky proxy session that was warmed up first. Every page is classified before parsing. Served pages become JSON records. Refused pages come back labeled, and the exit is replaced
应用场景 for a self-hosted Google scraper
Live Google results for SEO teams, AI builders and developers who already use NodeMaven
SEO 监测
Track positions for your own keywords and watch how results change. Run keyword and competitor research on live Google results
AI agents and LLM apps
Give Claude, Cursor and other agents live Google search through the MCP server. Each call returns structured results, not raw HTML
SERP API replacement
Already on NodeMaven? Run your own SERP API on localhost and point existing code at /search.json. You pay for proxy traffic, not per search
Try the scraper on a 300 MB traffic cap
常见问题
It is NodeMaven’s free, open-source Google search scraper for Python. It collects Google SERP results in a real Chrome browser through NodeMaven 住宅代理. Results come back as JSON. The package is published on PyPI and GitHub as google-browser-scraper, under the MIT license
The code is free. The searches are not. Every search runs through NodeMaven residential proxies, and proxy traffic is paid. In version 0.0.6, 1,000 searches used about 0.8 GB of residential traffic
A paid SERP API runs on its own servers and charges per search. This tool runs on your machine through NodeMaven residential proxies. You pay for traffic, and every run shows the cost per page. The HTTP API uses a familiar SERP API format
Install the scraper with the [nodemaven] extra, set NODEMAVEN_LOGIN and NODEMAVEN_PASSWORD, and add --nodemaven to your command. The session id is handled for you. Choose the exit country with --country
A new exit is warmed up first. The browser visits ordinary pages and stays on each for 20 to 45 seconds. Later searches on the same exit take seconds. The scraper is not frozen
The page is labeled captcha in page_verdict. It is never returned as an empty result. The exit is dropped and the query is retried on a new one.
Yes. The mcp command starts an MCP server with one tool, google_search(query, pages). Claude, Cursor and other MCP clients can call it.
Organic results, ads, related questions, related searches, pagination and search metadata. Knowledge panels, shopping and images are not parsed.
Yes. A ready image is published to GitHub Container Registry with every release. Run doctor inside it first to check the setup.
It depends on your use and where you run it. You are responsible for using the tool within Google’s terms and local law








