Skip to main content

A powerful, multi-engine search library for Python with DuckDuckGo, Brave Search, Google, Ecosia, Yahoo, AOL, and Naver — featuring concurrent multi-engine mode, suggestions, instant answers, and result caching.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

googer-0.7.3.tar.gz (55.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

googer-0.7.3-py3-none-any.whl (58.7 kB view details)

Uploaded Python 3

File details

Details for the file googer-0.7.3.tar.gz.

File metadata

  • Download URL: googer-0.7.3.tar.gz
  • Upload date:
  • Size: 55.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for googer-0.7.3.tar.gz
Algorithm Hash digest
SHA256 124bcb745f8d593ffeb873e0542362eac7e15ccea13c0ab7a8d74d8ec45854d0
MD5 d849273d8899ad97041123613b677b84
BLAKE2b-256 ffa304119c27d86a8044eb3989eea2c506dff78d20dbea9e5b72e9d633ede8f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for googer-0.7.3.tar.gz:

Publisher: publish.yml on CocoRoF/googer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file googer-0.7.3-py3-none-any.whl.

File metadata

  • Download URL: googer-0.7.3-py3-none-any.whl
  • Upload date:
  • Size: 58.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for googer-0.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fe01a0b30c93fe479c32c68cafea85e9adc710d4b30662e7ee3a2eb70b58f81b
MD5 d3420dc0db9e41687edfe974ed053dd7
BLAKE2b-256 afed1fc9ffba7893e9ba84fef811c6f96943f4a2008de4e8aa4e289d72838ec8

See more details on using hashes here.

Provenance

The following attestation bundles were made for googer-0.7.3-py3-none-any.whl:

Publisher: publish.yml on CocoRoF/googer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page