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
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
ailite-0.3.0.tar.gz
(3.4 kB
view details)
Built Distribution
File details
Details for the file ailite-0.3.0.tar.gz
.
File metadata
- Download URL: ailite-0.3.0.tar.gz
- Upload date:
- Size: 3.4 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 | 4f503b917ac861f1114aede723aada64bc546b9f768eca9d330299bf0acc0b1b |
|
MD5 | 4865a65c83b93ac55ff57a155a7d6b63 |
|
BLAKE2b-256 | 45ef57fa7037690a80ce484df8f82b5438c1ebaa7e93e91128a959a9bf467c3a |
File details
Details for the file ailite-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: ailite-0.3.0-py3-none-any.whl
- Upload date:
- Size: 3.5 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 | 164989c4b1c243d9a5d87b0ec69b56c6d26aee93d2bf8b5f159b6e756a7815b2 |
|
MD5 | 6316083d14724b2def3d8155de5fae60 |
|
BLAKE2b-256 | a0839bc914fa9250ea533e339f3eb6401aeb713c30f86f5a56f9084680ce55b1 |