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.5.0.tar.gz
(7.7 kB
view details)
Built Distribution
File details
Details for the file searchlite-0.5.0.tar.gz
.
File metadata
- Download URL: searchlite-0.5.0.tar.gz
- Upload date:
- Size: 7.7 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 | b1a161c292eba8830dd5fe7cc06d1e7dbed815f657adfea116a1278c171568f3 |
|
MD5 | 3cfcc75cb49f48e4af72177beb16e3eb |
|
BLAKE2b-256 | 9439ec93507a0a047d115e96f341fb63e9750a95bfe64f0605b801b563e9a7b8 |
File details
Details for the file searchlite-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: searchlite-0.5.0-py3-none-any.whl
- Upload date:
- Size: 7.0 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 | 22c0ffcc3f479b941f6904403ee6022b6d260f21d5d437723fc5c1eef7ae04c5 |
|
MD5 | 93243ebd83815fa628adfcd652257fdd |
|
BLAKE2b-256 | 4ee906131a5829f06eac967466e35c2e46174a3b5a587047a137c52785ed808f |