Skip to main content

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

Project description

webserp

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

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

Why webserp?

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

  • 8 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 webserp

Usage

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

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

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

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

# Use a proxy
webserp "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, 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.1.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.1-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: webserp-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 6d5d1e14dc2d80e2289bd1c9213fcbbb1c4e7c394d3989162416551d03946bd1
MD5 356dfb415a1fb36807da5ba72d525c9b
BLAKE2b-256 865e0eda80dcede7fb5a895d1108238a6daef58b8fdfa472b7395db06744c4a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: webserp-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1064ffae2b1840f3426ad2b042b8582bd669c3f9b7bc2c62732bc24672e7d4e4
MD5 766cb6e10e36a3c772628d3fb56d50fa
BLAKE2b-256 930c92fd9a0c249121e81ebf99ae624aad37191d666ee7fc29bd312051982ae6

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