Skip to main content

Metasearch CLI — query multiple search engines in parallel with browser impersonation

Project description

webgrep

Metasearch CLI — query multiple search engines in parallel with browser impersonation.

Like grep for the web. Searches Google, Bing, DuckDuckGo, Brave, Yahoo, Yandex, Mojeek, Startpage, and Presearch simultaneously, deduplicates results, and returns clean JSON.

Why webgrep?

Existing tools like ddgs get rate-limited and blocked because they use standard HTTP libraries. webgrep uses curl_cffi to impersonate real browsers (Chrome TLS/JA3 fingerprints), making requests indistinguishable from a human browsing.

  • 9 search engines queried in parallel
  • Browser impersonation via curl_cffi — bypasses bot detection
  • Fault tolerant — if one engine fails, others still return results
  • SearXNG-compatible JSON output format
  • No API keys — scrapes search engine HTML directly
  • Fast — parallel async requests, typically completes in 2-5s

Install

pip install webgrep

Usage

# Search all engines
webgrep "how to deploy docker containers"

# Search specific engines
webgrep "python async tutorial" --engines google,brave,bing

# Limit results per engine
webgrep "rust vs go" --max-results 5

# Show which engines succeeded/failed
webgrep "test query" --verbose

# Use a proxy
webgrep "query" --proxy "socks5://127.0.0.1:1080"

Output Format

JSON output matching SearXNG's format:

{
  "query": "deployment issue",
  "number_of_results": 42,
  "results": [
    {
      "title": "How to fix Docker deployment issues",
      "url": "https://example.com/docker-fix",
      "content": "Common Docker deployment problems and solutions...",
      "engine": "google"
    }
  ],
  "suggestions": [],
  "unresponsive_engines": []
}

Options

Flag Description Default
-e, --engines Comma-separated engine list all
-n, --max-results Max results per engine 10
--timeout Per-engine timeout (seconds) 10
--proxy Proxy URL for all requests none
--verbose Show engine status in stderr false
--version Print version

Engines

google, bing, duckduckgo, brave, yahoo, yandex, mojeek, startpage, presearch

License

MIT

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

webserp-0.1.0.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

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

webserp-0.1.0-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file webserp-0.1.0.tar.gz.

File metadata

  • Download URL: webserp-0.1.0.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for webserp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 afacf5f92d9f04e610d78206e461aa125b893cefc25fe1523a72b07aeb8c8964
MD5 48990411e96ab9907784329abaa62230
BLAKE2b-256 0f7038f6046654b0585d2cfa48baf23ede48e9dfa77df165efa045ee9d814ef0

See more details on using hashes here.

File details

Details for the file webserp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: webserp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for webserp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06f380630dc75382bdff3df4f4d79528a2eca8ee2b575719e30a01796a3c768a
MD5 2ed39a1c722132191b96058db2749db2
BLAKE2b-256 bcfc071cae19bde835d4b6a703110b42e74913a8cd6aa54a86ce95fd3782f65b

See more details on using hashes here.

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