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.
Metadata
Release files for osint-search-engine-pkg 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| osint_search_engine_pkg-0.1.5.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| osint_search_engine_pkg-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.9 kB
Release files / osint_search_engine_pkg-0.1.5.tar.gz
| Download URL | osint_search_engine_pkg-0.1.5.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8889bd17473fe7ab9e2a57ceb880568fb7c9f2365d86ea80bb4abd61bd534536
|
|
BLAKE2b-256 checksum How to use checksums |
76d4bdbc0ce0b8f8b41b4a2001df4038c5d199502f714decc97453a2824f5944
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / osint_search_engine_pkg-0.1.5-py3-none-any.whl
| Download URL | osint_search_engine_pkg-0.1.5-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6bd00c8efbab0a624c510568a03359d38a273b3b2db7593174f06e48d76bfe2a
|
|
BLAKE2b-256 checksum How to use checksums |
51493eff9be48d9f31c953be87908d88c3433b2df2f1a9afa9905dd9bc9ee127
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|