A unified wrapper for search engines like Serper, DuckDuckGo, etc.
Project description
OSINT Search Engine Wrapper
A lightweight, async wrapper around multiple search engine APIs (Serper/Google, DuckDuckGo, Bing). This package provides a unified, opinionated interface for running OSINT text and image searches.
Features
- Async-first: Built on
httpxandaiohttpfor high-performance concurrent searching. - Multiple Engines:
- Google (via Serper API)
- DuckDuckGo (No API key required)
- Bing (via Playwright/Headless Browser)
- Standardized Results: Returns clean, consistent JSON-like dictionaries across all engines.
Installation
Install the package directly from PyPI:
pip install osint-search-engine-pkg
## Quick start
1. Setup API Keys
For Google (Serper), you need an API key. DuckDuckGo and Bing do not require keys.
```powershell
$env:GOOGLE_SERPER_API_KEY = "your_api_key_here"
export GOOGLE_SERPER_API_KEY="your_serper_api_key"
- Usage Example Here is how to search using all three engines asynchronously:
import asyncio
from search_wrapper import GoogleSearchFromSerper, DuckDuckGoSearch, BingSearch
async def main():
# --- 1. Google Search (Requires API Key) ---
# You can pass the key explicitly or rely on the env variable
async with GoogleSearchFromSerper() as google:
results = await google.search("OSINT tools python")
print(f"Google found {len(results.get('data', []))} results")
# --- 2. DuckDuckGo (No Key Needed) ---
async with DuckDuckGoSearch() as ddg:
results = await ddg.search("latest cybersecurity news")
print(f"DuckDuckGo found {len(results.get('data', []))} results")
# --- 3. Bing (Headless Browser) ---
# use headless=False to see the browser action
async with BingSearch(headless=True) as bing:
results = await bing.search("site:linkedin.com python developer")
print(f"Bing found {len(results.get('data', []))} results")
if __name__ == "__main__":
asyncio.run(main())
Development notes
If you want to contribute or modify the source code:
- Clone the repository.
- Install in editable mode:
pip install -e
- Run tests using pytest (if available) or run the example scripts in tests/.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file osint_search_engine_pkg-0.1.5.tar.gz.
File metadata
- Download URL: osint_search_engine_pkg-0.1.5.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8889bd17473fe7ab9e2a57ceb880568fb7c9f2365d86ea80bb4abd61bd534536
|
|
| MD5 |
36772487fa8a0cf96efad96d18983242
|
|
| BLAKE2b-256 |
76d4bdbc0ce0b8f8b41b4a2001df4038c5d199502f714decc97453a2824f5944
|
File details
Details for the file osint_search_engine_pkg-0.1.5-py3-none-any.whl.
File metadata
- Download URL: osint_search_engine_pkg-0.1.5-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bd00c8efbab0a624c510568a03359d38a273b3b2db7593174f06e48d76bfe2a
|
|
| MD5 |
e8987a056879d98db8675e6ebfe35cfa
|
|
| BLAKE2b-256 |
51493eff9be48d9f31c953be87908d88c3433b2df2f1a9afa9905dd9bc9ee127
|