Melakukan data scraping terhadap website iflix.com untuk mendapatkan data video baik Movie, TVSeries, Clip
-
Lakukan data scraping dari sebuah laman web untuk memperoleh data atau informasi tertentu TANPA MENGGUNAKAN API. Hasil data scraping ini nantinya akan disimpan dalam DBMS dan digunakan sebagai bahan tugas analisis dan visualisasi data.
-
Daftarkan judul topik yang akan dijadikan bahan data scraping dan DBMS yang akan digunakan pada spreadsheet berikut: Topik Data Scraping. Usahakan agar tidak ada peserta dengan topik yang sama. Akses edit ke spreadsheet akan ditutup tanggal 8 Juni 2020 pukul 23.59 WIB
-
Dalam mengerjakan tugas, calon warga basdat terlebih dahulu melakukan fork project github pada link berikut: https://github.com/wargabasdat/Seleksi-2020-Tugas-1. Sebelum batas waktu pengumpulan berakhir, calon warga basdat harus sudah melakukan pull request dengan nama
TUGAS_SELEKSI_1_[NIM]
-
Pada repository tugas 1, calon warga basdat harus mengumpulkan file script, json hasil data scraping. Repository terdiri dari folder
src
,data
danscreenshots
. Foldersrc
berisi file script/kode yang WELL DOCUMENTED dan CLEAN CODE, folderdata
berisi file json hasil scraper sedangkan folderscreenshot
berisi tangkapan layar program. -
Deadline pengumpulan tugas 1 adalah 15 Juni 2020 Pukul 23.59 WIB
-
Sebagai referensi untuk mengenal data scraping, asisten menyediakan dokumen "Short Guidance To Data Scraping" yang dapat diakses pada link berikut: Data Scraping Guidance. Mohon memperhatikan etika dalam melakukan scraping.
-
Tambahkan juga
.gitignore
pada file atau folder yang tidak perlu di-upload, NB: BINARY TIDAK DIUPLOAD -
JSON harus dinormalisasi dan harus di-preprocessing
Preprocessing contohnya :
- Cleaning
- Parsing
- Transformation
- dan lainnya
- Berikan
README
yang WELL DOCUMENTED dengan cara override fileREADME.md
ini.README
harus memuat minimal konten:
- Description
- Specification
- How to use
- JSON Structure
- Screenshot program (di-upload pada folder screenshots, di-upload file image nya, dan ditampilkan di dalam README)
- Reference (Library used, etc)
- Author
- Membuka folder src
- Me-run file "scraper.py" untuk mengekstrak data dari website iflix.com.
- Melakukan input nama file bebas yang diakhiri ".json"
- Berikut merupakan contoh hasil keluaran dari file apabila program berhasil untuk mengekstrak data.
Input file name (ex: "data_results.json") : data_results.json
Getting Link....
Getting Link Completed
Extracting 405 of 405 data
399 data succesfully extracted
Data succesfully saved on data_results.json
- File json akan terdapat dalam folder yang sama
{
"TVSeries": [ daftar TV series
{
"id": id series ,
"url": link video ,
"type": tipe video (TVSeries/Movies/Clip),
"title": judul video,
"contentType": kategori konten dari video(Cth: PG-13),
"year": tahun diterbitkan video ,
"synopsis": sinopsis video,
"image": link gambar poster dari video,
"availabilityStarts": waktu awal film dapat diakses di website,
"availabilityEnds": waktu akhir film dapat diakses di website,
"accessCategory": kategori akses (cth: nologinrequired),
"bestRating": rating terbaik video,
"ratingCount": jumlah rating video,
"ratingValue": rata-rata rating video,
"genre": [
{
"name": nama genre (cth: Comedy)
}
],
"subtitle": [ daftar subtitle video
{
"language": bahasa subtitle (cth: English)
}
],
"starring": [ daftar pemeran video
{
"actor": nama aktor (cth: Pevita Pearce)
}
],
"directors": [ daftar director video
{
"director" : nama director
}
],
"seasons": [ daftar season
{
"name": nama season (cth: Season 1)
"type": tipe season (TVSeason),
"dateCreated": tanggal season dimasukkan ke dalam website,
"numberOfEpisodes": jumlah episode dalam season
}
],
"eligibleRegion": [ daftar negara yang bisa mengakses video ini
{
"country": nama negara (cth: MY)
}
],
"actionPlatform": [ daftar platform yang bisa mengakses video ini
{
"platform": nama platform (cth : "http://schema.org/AndroidTVPlatform")
}
]
}
],
"Movie": [ daftar film
{
"id": id film,
"type": tipe video (TVSeries/Movies/Clip),
"title": judul film,
"contentType": kategori konten film (Cth: PG-13),
"year": tahun keluar film,
"duration": durasi film,
"synopsis": sinopsis film,
"dateCreated": tanggal film dimasukkan ke dalam website,
"image": link gambar poster film,
"availabilityStarts": waktu awal film dapat diakses di website,
"availabilityEnds": waktu akhir film dapat diakses di website,
"accessCategory": "nologinrequired",
"bestRating": rating terbaik film,
"ratingCount": jumlah rating film,
"ratingValue": rata-rata rating film,
"genre": [ daftar genre
{
"name": nama genre (Cth : Drama)
}
],
"subtitle": [ daftar subtitle
{
"language" : bahasa subtitle (Cth : English)
}
],
"starring": [ daftar pemain film
{
"actor": nama aktor
}
],
"directors": [ daftar director film
{
"director" : nama director
}
],
"eligibleRegion": [ daftar negara yang bisa mengakses film ini
{
"country": nama negara (Cth: MY)
}
],
"actionPlatform": [ daftar platform yang bisa mengakses video ini
{
"platform": nama platform (cth : "http://schema.org/AndroidTVPlatform")
}
]
}
],
"Clip": [ daftar clip
{
"id": id clip,
"type": tipe video (TVSeries/Movies/Clip),
"description": deskripsi/sinopsis clip,
"image": link gambar poster clip,
"title": judul clip
}
]
}
Screenshot program (di-upload pada folder screenshots, di-upload file image nya, dan ditampilkan di dalam README)
-
By : Inka Anindya Riyadi (13518038)
-
Teknik Informatika ITB 2018
-
Requirements :
- Python 3.7.7
- Library :
- beautiful soup (install by "pip install bs4")
- requests
- json