A powerful web content fetcher and processor
Project description
SearchLite 🔍
A lightning-fast, asynchronous real-time Google Search API wrapper with built-in optimization for batch queries.
Features ✨
- 🚀 Real-time Google search results
- 🔄 Asynchronous batch searching
- 🎯 Optimized for multiple queries
- 🧹 Automatic duplicate removal
- 🎨 Optional progress animation
- 🔧 Configurable worker pool
Installation 📦
pip install searchlite
Quick Start 🚀
Basic Search
from searchlite import RealTimeGoogleSearchProvider
# Initialize the search provider
searcher = RealTimeGoogleSearchProvider()
# Single query search
results = searcher.search("Python programming", max_urls=5)
print(results)
Batch Search
# Multiple queries at once
queries = [
"machine learning basics",
"data science projects",
"python best practices"
]
# Batch search with async execution
results = searcher.search_batch(queries, max_urls=10)
print(results)
Advanced Usage 🔧
Custom Configuration
searcher = RealTimeGoogleSearchProvider(
search_provider="google", # Search engine to use
chromedriver_path="/custom/path/chromedriver", # Custom ChromeDriver path
max_workers=4, # Number of concurrent workers
animation=True # Enable progress animation
)
Async Implementation
import asyncio
async def main():
searcher = RealTimeGoogleSearchProvider()
queries = ["AI news", "Python updates", "Tech trends"]
# Using the internal async method
results = await searcher._async_batch_search(queries, max_urls=5)
return results
# Run async function
results = asyncio.run(main())
Features Explained 📚
URL Processing
- Automatic hash fragment removal
- Duplicate URL filtering
- Configurable result limit
- Maintains original URL order
Batch Processing
- Concurrent execution
- Memory efficient
- Automatic error handling
- Result aggregation
Requirements 🛠️
- Python 3.7+
- ChromeDriver
- Required Python packages:
selenium
asyncio
typing
Contributing 🤝
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License 📄
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments 🙏
- Inspired by the need for efficient real-time search capabilities
- Built with ❤️ for the Python community
- Special thanks to all contributors
Support 💬
For support, please open an issue in the GitHub repository or contact the maintainers.
Made with ❤️
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
searchlite-0.2.0.tar.gz
(6.2 kB
view details)
Built Distribution
File details
Details for the file searchlite-0.2.0.tar.gz
.
File metadata
- Download URL: searchlite-0.2.0.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15ae2afd575aa11e872c3401e05405c7b1ae8c49a1d4523023bcdad7cdf5cb5f |
|
MD5 | 1795d693d88a22757975adbe2a15a381 |
|
BLAKE2b-256 | 5f7ca2161a76947ccf6a7a59dca0b77f8dd05703fd1b8635a79f569b545e28f9 |
File details
Details for the file searchlite-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: searchlite-0.2.0-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a22a89b89e22a179324daf1549638eb53a872ca68b9c39d63830f383d6682e9 |
|
MD5 | 1263293da4b5ac91a40e3e8cffbb050b |
|
BLAKE2b-256 | ee492c234370b92bc1f831dd4053fa3cfde1c2060098a4dca921fa7bfa4a28f8 |