Scraper - 9Anime Search
Jika Anda seorang penggemar anime yang ingin mencari informasi terkait anime favorit secara otomatis, fitur Anime Search bisa menjadi solusi.

Muhamad Nur Ibad
12 Januari 2025•1 menit baca

Panduan Lengkap Membuat Fitur Anime Search dari 9anime.co Menggunakan Cheerio dan Axios
Jika Anda seorang penggemar anime yang ingin mencari informasi terkait anime favorit secara otomatis, fitur "Anime Search" bisa menjadi solusi. Artikel ini membahas cara membuat fitur pencarian anime dari website 9anime.co menggunakan Node.js, Axios, dan Cheerio. Dengan kode yang disediakan, Anda dapat mendapatkan data anime seperti judul, tautan, gambar, kualitas, tipe (sub/dub), dan episode terakhir.
Apa Itu Axios dan Cheerio?
Axios adalah library HTTP client yang digunakan untuk mengirimkan request ke sebuah URL dan mendapatkan respons data.
Cheerio adalah library yang memungkinkan kita untuk melakukan parsing HTML, mirip seperti jQuery tetapi untuk server-side.
Instalasi Library
Sebelum mulai, pastikan Anda memiliki Node.js terinstal. Selanjutnya, instal axios dan cheerio dengan perintah berikut:
npm install axios cheerio
Membuat Fungsi Pencarian Anime
Kode berikut digunakan untuk mencari anime berdasarkan kata kunci.
Kode Lengkap
import axios from 'axios';
import * as cheerio from 'cheerio';
export async function anime9(anime) {
const { data: dataa } = await axios.get(`https://9animetv.to/search?keyword=${anime}`);
const $ = cheerio.load(dataa);
const result = [];
$('.flw-item').each((i, element) => {
const title = $(element).find('.film-name a').attr('title');
const url = 'https://9animetv.to' + $(element).find('.film-name a').attr('href');
const imgSrc = $(element).find('.film-poster-img').attr('data-src');
const quality = $(element).find('.tick-quality').text();
const subOrDub = $(element).find('.tick-sub').text() || $(element).find('.tick-dub').text();
const episode = $(element).find('.tick-eps').text().replace(/\s+/g, ' ').trim();
result.push({
title,
url,
imgSrc,
quality,
subOrDub,
episode
});
});
return result;
}
// Contoh Penggunaan
anime9("Naruto").then(res => {
console.log(res);
});
Penjelasan Kode
1. Mengirim Permintaan HTTP Menggunakan axios.get, kita mengirimkan request ke URL pencarian dengan menambahkan parameter kata kunci (keyword).
const { data: dataa } = await axios.get(`https://9animetv.to/search?keyword=${anime}`);
2. Memuat HTML dengan Cheerio Library Cheerio digunakan untuk memuat data HTML yang diperoleh dari respons.
const $ = cheerio.load(dataa);
3. Menelusuri Elemen HTML Seleksi elemen dilakukan untuk mendapatkan informasi seperti judul anime, tautan, gambar, kualitas, tipe, dan episode:
$('.flw-item').each((i, element) => {
const title = $(element).find('.film-name a').attr('title');
const url = 'https://9animetv.to' + $(element).find('.film-name a').attr('href');
const imgSrc = $(element).find('.film-poster-img').attr('data-src');
const quality = $(element).find('.tick-quality').text();
const subOrDub = $(element).find('.tick-sub').text() || $(element).find('.tick-dub').text();
const episode = $(element).find('.tick-eps').text().replace(/\s+/g, ' ').trim();
});
4. Menambahkan Hasil ke Array Data yang diperoleh dari setiap elemen HTML disusun ke dalam array result:
result.push({
title,
url,
imgSrc,
quality,
subOrDub,
episode
});
5. Mengembalikan Hasil Fungsi mengembalikan array result yang berisi data pencarian anime:
return result;
Hasil Eksekusi
Ketika menjalankan kode di atas dengan parameter "Naruto", hasilnya adalah array berisi daftar anime yang sesuai dengan kata kunci pencarian.
Contoh keluaran:
[
{
"title": "Naruto",
"url": "https://9animetv.to/watch/naruto",
"imgSrc": "https://example.com/naruto.jpg",
"quality": "HD",
"subOrDub": "SUB",
"episode": "220 Episodes"
},
{
"title": "Naruto Shippuden",
"url": "https://9animetv.to/watch/naruto-shippuden",
"imgSrc": "https://example.com/naruto-shippuden.jpg",
"quality": "HD",
"subOrDub": "SUB",
"episode": "500 Episodes"
}
]
Kesimpulan
Dengan kode ini, Anda dapat membuat fitur pencarian anime otomatis dari 9anime.co menggunakan Axios dan Cheerio. Fitur ini dapat diintegrasikan ke aplikasi Anda untuk memberikan pengalaman pengguna yang lebih baik, terutama bagi penggemar anime.
Jika Anda ingin mengembangkan lebih lanjut, Anda dapat menambahkan fitur seperti:
Filter hasil berdasarkan kualitas.
Pagination untuk hasil pencarian lebih banyak.
Menampilkan hasil dalam antarmuka pengguna.
Selamat mencoba!