googlesearch-python
A Python library for scraping the Google search engine.
Decision gist · record as of 2026-08-14
Yes, if you need quick Google search scraping for a one-off script or prototype and accept that maintenance is dormant. No, if you need production reliability, active bug fixes, or assurance that Google's anti-scraping measures won't break the parser. Consider a commercial search API (Google Custom Search, SerpAPI) for production use. Permissive MIT license and low install friction are pluses, but verify that scraping complies with Google's terms and that the HTML parser still works with current Google pages.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.6 or later.
- Google may block or rate-limit requests if too many queries are sent in rapid succession; use sleep_interval to add delays between requests.
- Low install friction with only two runtime dependencies (beautifulsoup4 and requests).
License · maintenance · safety
permissive license (permissive) — Licensed under MIT (permissive), so you can use, modify, and distribute this package freely in commercial or private projects with minimal restrictions.
last release 2025-01-21 (570 days) · last repo commit 2025-02-03 · 783 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 823,345 downloads/mo, #4,968 on PyPI
Alternatives
Verify before relying
pip install googlesearch-python
from googlesearch import search
results = search("Python", num_results=10)
for result in results:
print(result)- Whether Google's terms of service permit scraping via this method, or if blocking/detection is common in practice.
- Current reliability and whether Google HTML structure changes have broken the parser since the last commit.
- Whether the package handles modern Google anti-bot measures (CAPTCHAs, JavaScript rendering).
What it is and what it does
googlesearch-python is a web scraper that queries Google and extracts search results by making HTTP requests and parsing the returned HTML with BeautifulSoup4. It wraps the requests and BeautifulSoup4 libraries to provide a simple search() function that returns either plain URLs or detailed SearchResult objects with title, URL, and description fields.
The package is designed for straightforward use cases where you need to programmatically retrieve Google search results. It supports common options like result count, language, region, safe search toggle, and proxy configuration. For larger result sets, it handles pagination automatically but requires you to set sleep intervals between requests to avoid rate-limiting. The library is lightweight and has low install friction, but maintenance is dormant and Google's anti-scraping measures may affect reliability.
Use it for
- Bulk-extract search results for a list of keywords to feed into a data pipeline or analysis tool.
- Prototype a search aggregator or comparison tool that needs to fetch and display Google results programmatically.
- Automate SEO research by scraping top results for competitor analysis or keyword ranking checks.
- Build a research bot that gathers URLs and descriptions from Google for a specific domain or topic.
- Test web scraping workflows before moving to a more robust or commercial search API.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need quick Google search scraping for a one-off script or prototype and accept that maintenance is dormant.
No, if you need production reliability, active bug fixes, or assurance that Google's anti-scraping measures won't break the parser. Consider a commercial search API (Google Custom Search, SerpAPI) for production use. Permissive MIT license and low install friction are pluses, but verify that scraping complies with Google's terms and that the HTML parser still works with current Google pages.
Install
googlesearch-python on PyPI
Before you install
Low install friction with only two runtime dependencies (beautifulsoup4 and requests). Maintenance is dormant—last commit was 2025-02-03 but no releases since 2025-01-21, and the repository has not been updated in over 570 days relative to the fact sheet date. Use with awareness that bug fixes or compatibility updates may be slow.
Requires Python 3.6 or later. Google may block or rate-limit requests if too many queries are sent in rapid succession; use sleep_interval to add delays between requests.
License in practice
Licensed under MIT (permissive), so you can use, modify, and distribute this package freely in commercial or private projects with minimal restrictions.
Quickstart
pip install googlesearch-python
from googlesearch import search
results = search("Python", num_results=10)
for result in results:
print(result)
Verify before relying
- Whether Google's terms of service permit scraping via this method, or if blocking/detection is common in practice.
- Current reliability and whether Google HTML structure changes have broken the parser since the last commit.
- Whether the package handles modern Google anti-bot measures (CAPTCHAs, JavaScript rendering).
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesbeautifulsoup4requests |
| Maintenance | Dormant 570 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 823,345 / month, #4,968 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: googlesearch_python-1.3.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “google search scraping”
- googlesearch-pythonScrapes Google search results by sending HTTP requests and parsing…
- serpapiOfficial Python client for SerpApi that queries multiple search…
- scrapingbeePython SDK wrapper for ScrapingBee's web scraping API, providing…
Give your agent the search over MCP, or paste the wish link into any chat.
More WWW/HTTP packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
HTTPX is a fully featured HTTP client library for Python that provides both sync and async APIs, with support for HTTP/1.1 and HTTP/2, plus an integrated command-line client.
Install it if you are building new projects or modernizing existing ones that rely on HTTP.
A minimal low-level HTTP client library that sends HTTP requests with thread-safe and task-safe connection pooling, supporting HTTP/1.1, HTTP/2, proxies, and both sync and async interfaces.
aiohttp is an async HTTP client and server framework built on asyncio, supporting both WebSockets and middleware-based routing for building concurrent web applications.
Install it if you need async HTTP client or server capabilities in asyncio-based applications.
See also google-search-results · BeautifulSoup · brave-search · beautifulsoup4 · scrapingbee · scrapegraph-py · firecrawl · spider-client · crawlee · Scweet