otakundikz
Version:
Scraper anime dari otakudesu
42 lines (35 loc) • 1.23 kB
JavaScript
const axios = require("axios");
const cheerio = require("cheerio");
/**
* Scrap detail anime dari link otakudesu
* @param {string} url - URL anime di otakudesu
* @returns {Promise<{title: string, details: object, synopsis: string, episodes: object[]}>}
*/
async function getAnimeDetail(url) {
try {
const { data } = await axios.get(url);
const $ = cheerio.load(data);
// Judul utama
const title = $(".jdlrx h1").text().trim();
// Info detail anime
const details = {};
$(".infozingle p").each((i, el) => {
const label = $(el).find("b").text().replace(":", "").trim();
const value = $(el).text().replace($(el).find("b").text(), "").trim();
details[label] = value;
});
// Sinopsis
const synopsis = $(".sinopc").text().trim();
// List episode
const episodes = [];
$(".episodelist ul li").each((i, el) => {
const episodeTitle = $(el).find("a").text().trim();
const episodeUrl = $(el).find("a").attr("href");
episodes.push({ episodeTitle, episodeUrl });
});
return { title, details, synopsis, episodes };
} catch (error) {
throw new Error("Gagal mengambil data: " + error.message);
}
}
module.exports = { getAnimeDetail };