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?

Most search scraping tools 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

For OpenClaw and AI agents

Built for AI agents. Tools like OpenClaw and other AI agents need reliable web search without API keys or rate limits. webserp uses curl_cffi to mimic real browser fingerprints — results like a browser, speed like an API. It queries 8 engines in parallel, so even if one gets rate-limited, results still come back.

Why a CLI tool instead of a Python library?

A CLI tool keeps web search out of the agent's process. The agent calls webserp, gets JSON back, and the process exits — no persistent HTTP sessions, no in-process state, no import overhead. Agents that never need web search pay zero cost.

Example agent use cases

  • Research — searching the web for current information before answering user questions
  • Fact checking — verifying claims against multiple search engines
  • Link discovery — finding relevant URLs, documentation, or source code
  • News monitoring — checking for recent events or updates on a topic
# Agent searching for current information
webserp "latest python 3.14 release date" --max-results 5

# Searching multiple engines for diverse results
webserp "docker networking troubleshooting" --engines google,brave,bing --max-results 3

# Quick search with verbose to see which engines responded
webserp "CVE-2024 critical vulnerabilities" --verbose --max-results 5

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.3.tar.gz (12.9 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.3-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: webserp-0.1.3.tar.gz
  • Upload date:
  • Size: 12.9 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.3.tar.gz
Algorithm Hash digest
SHA256 c3ddf26eee3a23cbf8aa99f0111bc8d695179fd1978b763c42b17dafe2922622
MD5 65c4b58ed39e953b681d95ab77707bd4
BLAKE2b-256 31ceaccf4a9e76d0693707e99c2543c414dcd95633a960bd3e28bef13c4a53ec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: webserp-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 17.0 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3e5f78a38305ea549d2884347c06d5e0aef45f625b118ed3690b0c7099bc8b0b
MD5 af6b878a3aa8b60730a04d28f750a05f
BLAKE2b-256 08f28125e6a758fef5df0d3e1b6c241a566ba41235a3a01082abad9c51182667

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