MyAnimeBack is a web scraping API developed to fetch historical data from MyAnimeList. This project is integrated with the Wayback Machine API and serves as the backend for another application. It provides an efficient approach to collect and analyze historical statistics for different anime and manga titles.
- Retrieve snapshots of MyAnimeList pages at various timestamps with the Wayback Machine API.
- Scrape and interpret data using the Jsoup library.
- Extract historical stats like score, popularity, and favorites.
- Implement robust error and exception handling.
The screenshot showcases various elements of the frontend:
- Search Bar: At the top, a search bar lets you input a MyAnimeList URL for an anime or manga, initiating an automatic search.
- Information Form: Below the search bar, this form allows you to input specifics for extracting anime snapshots.
- Timeline Slider: Positioned under the form, this slider enables navigation through different timestamps for your chosen anime.
- Chart Display: On the right, a chart displays the anime's statistical trends over time.
- GIF Preview: On the left, a GIF provides a visual overview of the anime.
This service interfaces with the Wayback Machine API to obtain historical snapshots of MyAnimeList pages. Exception handling is in place to ensure smooth operations.
A specialized web scraper for MyAnimeList, implementing the ArchiveScraper
interface. It utilizes the Jsoup library to scrape and process data.
sequenceDiagram
participant Client
participant Controller
participant WaybackMachineClient
participant MyAnimeListScraper
participant Jsoup
Client->>Controller: Request anime/manga data
Controller->>WaybackMachineClient: getSnapshotsByYear(url, year)
WaybackMachineClient->>WaybackMachineClient: requestCalendarCaptures(endpoint)
WaybackMachineClient-->>Controller: List<Snapshot>
Controller->>MyAnimeListScraper: scrape(snapshot.url)
MyAnimeListScraper->>Jsoup: connectToUrl(url)
Jsoup-->>MyAnimeListScraper: Document
MyAnimeListScraper->>MyAnimeListScraper: extractData(Document, target)
MyAnimeListScraper-->>Controller: MediaState
Controller-->>Client: Response with anime/manga data
- MyAnimeList for the extensive anime and manga database.
- The Wayback Machine for archiving web pages.
- Spring Boot for easing Java application development.
- Jsoup for the web scraping library.
- Broaden the API's scope with more endpoints and features.
- Enhance error handling for a more robust application.
This project falls under the MIT License. For more details, please refer to the LICENSE file.