Skip to main content

Googer

A multi-engine search library for Python supporting 7 search engines.

DuckDuckGo · Brave · Google · Ecosia · Yahoo · AOL · Naver — unified search through a single API.

한국어 문서 (Korean)

Installation

pip install googer

Quick Start

from googer import Googer

# Search (default: auto mode — automatic engine selection with fallback)
results = Googer().search("python programming")
for r in results:
    print(r.title, r.href)

Engine Selection

from googer import Googer

# Use a specific engine
g = Googer(engine="brave")
results = g.search("rust language")

# Multi-engine — query multiple engines concurrently and merge results
g = Googer(engine="multi")
results = g.search("machine learning")

# Override engine per method call
g = Googer(engine="duckduckgo")
results = g.search("AI news", engine="naver")  # uses Naver for this call only

Supported Engines

Engine Text Images News Videos
duckduckgo ✅ ✅ ✅ ✅
brave ✅ ✅ ✅
google ✅ ✅ ✅ ✅
ecosia ✅
yahoo ✅
aol ✅
naver ✅

Engine Modes

Mode Description
auto Default. Tries engines in fallback order, uses the first that succeeds
multi Queries multiple engines concurrently, merges and deduplicates results
duckduckgo, brave, ... Uses only the specified engine

Search Types

from googer import Googer

g = Googer()

# Text search
results = g.search("python", region="ko-kr", max_results=20)

# Image search
images = g.images("cute cats", size="large", color="color")
for img in images:
    print(img.title, img.image)

# News search (last 24 hours)
news = g.news("AI", timelimit="d")
for n in news:
    print(n.title, n.source, n.date)

# Video search (short videos only)
videos = g.videos("python tutorial", duration="short")

# Autocomplete suggestions
suggestions = g.suggest("python")

# Instant answer
answer = g.answers("python release date")

Advanced Queries

from googer import Googer, Query

q = (
    Query("machine learning")
    .exact("neural network")
    .site("arxiv.org")
    .filetype("pdf")
    .exclude("tutorial")
)

results = Googer().search(q, max_results=20)

Proxy & Context Manager

from googer import Googer

# With proxy (also supports GOOGER_PROXY env var)
with Googer(proxy="socks5://127.0.0.1:9150") as g:
    results = g.search("privacy tools")

# Tor Browser shorthand
with Googer(proxy="tb") as g:
    results = g.search("onion sites")

All Options

g = Googer(
    engine="auto",          # auto | multi | duckduckgo | brave | google | ecosia | yahoo | aol | naver
    proxy=None,             # Proxy URL (http/https/socks5)
    timeout=10,             # Request timeout in seconds
    max_retries=3,          # Number of retries
    cache_ttl=300,          # Cache TTL in seconds (0 to disable)
    backend="http",         # http | browser
    headless=True,          # Headless mode when using browser backend
    verify=True,            # SSL certificate verification
)

CLI

# Text search
googer search -q "python programming" -m 5

# Specify engine
googer search -q "news" --engine naver

# Multi-engine search
googer search -q "AI" --engine multi

# News (past week)
googer news -q "AI" -t w

# Images
googer images -q "landscape" --size large

# Videos
googer videos -q "cooking" --duration short

# Suggestions
googer suggest -q "python"

# Save results
googer search -q "python" -o results.json
googer search -q "python" -o results.csv

# With proxy
googer search -q "python" --proxy socks5://127.0.0.1:9150

# Version
googer version

CLI Options

Option Short Description
--query -q Search query (required)
--engine Engine selection (default: auto)
--region -r Region code (default: us-en)
--safesearch -s on / moderate / off
--timelimit -t h (hour) d (day) w (week) m (month) y (year)
--max-results -m Maximum number of results (default: 10)
--backend http / browser
--proxy Proxy URL
--timeout Timeout in seconds (default: 10)
--output -o Save to .json or .csv file
--no-color Disable colored output

Environment Variables

Variable Description
GOOGER_PROXY Default proxy URL

Requirements

  • Python 3.10+
  • primp — HTTP client with TLS fingerprint impersonation
  • lxml — HTML parsing
  • click — CLI framework

License

Apache License 2.0 — LICENSE.md

Metadata

Release files for googer 0.7.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for googer 0.7.3
File Size Uploaded Provenance Actions
googer-0.7.3.tar.gz 55.2 kB With provenance Details for googer-0.7.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for googer 0.7.3
File Interpreter ABI Platform Actions
googer-0.7.3-py3-none-any.whl Python 3 none any Details for googer-0.7.3-py3-none-any.whl

Total release size: 113.9 kB

Release files / googer-0.7.3.tar.gz

Download URL googer-0.7.3.tar.gz
Size 55.2 kB
Tags Source
SHA-256 checksum
How to use checksums
124bcb745f8d593ffeb873e0542362eac7e15ccea13c0ab7a8d74d8ec45854d0
BLAKE2b-256 checksum
How to use checksums
ffa304119c27d86a8044eb3989eea2c506dff78d20dbea9e5b72e9d633ede8f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.

Transparency log

Release files / googer-0.7.3-py3-none-any.whl

Download URL googer-0.7.3-py3-none-any.whl
Size 58.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fe01a0b30c93fe479c32c68cafea85e9adc710d4b30662e7ee3a2eb70b58f81b
BLAKE2b-256 checksum
How to use checksums
afed1fc9ffba7893e9ba84fef811c6f96943f4a2008de4e8aa4e289d72838ec8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.

Transparency log

Security for googer 0.7.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for googer-0.7.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page