AnimeScraper is an Open Source Python library designed for scraping and parsing anime-related data from MyAnimeList. With support for asynchronous requests, it allows you to fetch detailed information about anime, characters, and more efficiently.
- Fetch detailed anime and character details
- Asynchronous Fast data retrieval
- Caching
- Easy-to-use API
- Fully typed and documented
- Supports Synchronous as well
- Comes with a Cli too
- FastAPI Server with Caching config
You can install AnimeScraper using pip:
pip install animescraper
You can use AnimeScraper in your command line too. Type animescraper
for Usage. Available commands search-anime
, get-anime
, search-character
etc. look at the Documentation for more information.
Example:
This library supports both Synchronous and Asynchronous.
Searching and Fetching Anime
from AnimeScraper import SyncKunYu
scraper = SyncKunYu()
anime = scraper.search_anime("Chuunibyo demo koi ga shita")
print(anime.title)
print(anime.stats.rank)
Searching and fetching Character
from AnimeScraper import SyncKunYu
scraper = SyncKunYu()
character = scraper.search_character("Takanashi Rikka")
print(character.about)
print(character.description)
Searching Anime
import asyncio
from AnimeScraper import KunYu
async def main():
scraper = KunYu()
anime = await scraper.search_anime("violet evergarden") # Violet Evergarden
print(anime.title)
print(anime.synopsis)
print(anime.characters[0].name)
asyncio.run(main())
Searching Character
import asyncio
from AnimeScraper import KunYu
async def main():
scraper = KunYu()
# Search and Fetch Character detials by name
character = await scraper.search_character("Killua Zoldyck")
print(character.name)
print(character.url)
asyncio.run(main())
Fetching Anime details
import asyncio
from AnimeScraper import KunYu
async def main():
# Use async Context manager to fetch multiple anime with same session
async with KunYu() as scraper:
anime = await scraper.get_anime("32281") # Fullmetal Alchemist: Brotherhood
print(anime.stats.score)
print(anime.characters[0].name)
asyncio.run(main())
Detailed documentation is available. Check out the Documentation
KunYu
: Main interface for scraping anime and character dataAnime
: Detailed anime information modelCharacter
: Comprehensive character details model- Asynchronous scraping with
aiohttp
- Python 3.10+
- aiohttp
- httpx
- pydantic
- uvicorn
AnimeScraper/
│
├── AnimeScraper/
│ ├── Scraper.py # Main scraping interface
│ ├── _model.py # Data models
│ ├── malscraper.py # HTTP connection handler
│ └── _parse_anime_data.py # HTML parsing utilities
│
├── docs/ # Sphinx documentation
├── tests/ # Unit tests
└── pyproject.toml # Project configuration
Distributed under the GPL-V3.0 License. See LICENSE for more information.