A modern async Wikipedia API client
Project description
Modern Wikipedia API Client
A async Wikipedia API client with advanced features for professional use.
Features
- Async/Await Support: Built with
aiohttpfor high-performance async operations - Automatic Rate Limiting: Configurable rate limiting with smart backoff
- Retry Logic: Exponential backoff with jitter for robust error handling
- Caching: Time-based caching with TTL support
- Multi-language Support: Easy language switching
- Batch Operations: Optimized batch requests for multiple pages
- Type Safety: Full type annotations with Pydantic models
- Error Handling: Comprehensive error hierarchy
- Production Ready: Optimal defaults for production use
Quick Start
Installation
pip install wikipedia-async
import asyncio
from wikipedia_async import WikipediaClient
async def main():
# Initialize client with optimal defaults
client = WikipediaClient()
# Search for articles
res = await client.search("Python programming")
results = res.results
print(f"Found {len(results)} search results:")
# Get page content
page = await client.get_page("Python (programming language)") # url or title
print(f"Title: {page.title}")
print(f"Summary: {page.summary[:200]}...")
# Sections (table supported)
print("Sections:")
for section in page.sections:
print(section.to_string(markdown=True))
# if tables don't show set get_page(include_tables=True) to explicitly get tables (which is slower)
# Batch operations
res = await client.get_pages_batch(["Python", "JavaScript", "Rust"]) # list of titles or urls
for p in res.successful:
print(f"- {p.title} ({p.url})")
for err in res.failed:
print(err)
await client.close()
if __name__ == "__main__":
asyncio.run(main())
Configuration
from wikipedia_async import WikipediaClient, ClientConfig
config = ClientConfig(
language="en",
rate_limit_calls=10,
rate_limit_period=1.0,
max_retries=3,
cache_ttl=300, # 5 minutes
timeout=30.0,
max_concurrent_requests=10
)
client = WikipediaClient(config=config)
See Docs Here
Note: The documentation is outdated
See Examples Here
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
wikipedia_async-0.17.0.tar.gz
(121.5 kB
view details)
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 wikipedia_async-0.17.0.tar.gz.
File metadata
- Download URL: wikipedia_async-0.17.0.tar.gz
- Upload date:
- Size: 121.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b99c973919414ae9ff13c20761308f1686ff3baa9b9b346a96bf74798738d8b2
|
|
| MD5 |
3698b4ad69c7e4f74d283a8f89b48adf
|
|
| BLAKE2b-256 |
b823e59a41351fa9d3c91ddc6f70ff41560b0284a4e963d0738da28931269fb7
|
File details
Details for the file wikipedia_async-0.17.0-py3-none-any.whl.
File metadata
- Download URL: wikipedia_async-0.17.0-py3-none-any.whl
- Upload date:
- Size: 29.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2852eced2229c932b32e23d7614cf0a94b58b21120e431cb1772c1965e9412c
|
|
| MD5 |
4a2a00d1d86ec93404b32fc9bb3e484e
|
|
| BLAKE2b-256 |
60495198d612df7ab4a83b9b991084484c4dca2916750fe56b5bbc6af5ee95de
|