Scrape Film Indonesia Bergenre Horor dengan Python

Print Friendly and PDF 0 Viewers
Scrape Film Indonesia Bergenre Horor dengan Python - Selamat siang semua pengunjung semangat27.com, kali ini admin akan berbagi bagaimana caranya scrape atau scraping dengan menggunakan python atau lebih tepatnya menggunakan jupyter notebook. Untuk pengetahuan dasarnya silakan cari sendiri ya, disini admin hanya akan menceritakan bagian code yang sudah dibuat dalam jupyter notebook dengan menggunakan bahasa python. Semoga saja dapat bermanfaat dan bisa dipahami ya, jika ada kekurangan silakan sampaikan pada kolom komentar dibawah. Terlebih jika diberikan saran, tentunya admin akan sangat senang sekali. Begitupun jika ada pertanyaan, silakankan tulis pada kolom komentar dibawah, insya allah akan admin jawab.

Baik langsung saja, berikut adalah Scrape Indonesian Movie Horror WebPage with Jupyter Notebook Python. Silakan disimak baik-baik karena ada beberapa issue scrape yang menarik seperti scrape multiple page dan fix null value.





Pertama tentu saja kita perlukan library python untuk scrape webpage indonesian horror movie tersebut seperti requests untuk melakukan requests halaman main page yang akan kita gunakan untuk mengambil data yang ada didalamnya, dalam hal ini scrape film indonesia yang bergenre horor. Kemudian kita membutuhkan library BeautifulSoup agar scrape kita tidak berantakan. Scrape dengan beautifulsoup ini akan memudahkan kita mengambil secara spesifik tag (dalam html) mana yang akan kita ambil isinya. Selanjutnya ada pandas yang merupakan library untuk membuat dataframe agar data yang telah kita kumpulkan tadi tersusun rapih layaknya berada dalam tabel yang siap kita outputkan kedalam format CSV biasanya.

Akan tetapi perlu digaris bawahi untuk konsep pemikirannya sendiri tidak serta merta anda menuliskan ketiga library ini. Library tersebut muncul pada saat admin benar-benar akan menggunakannya. Tiga langsung begitu saja ditulis diawal. Tapi dibawah ini admin tuliskan apa adanya code yang telah admin buat terlebih dahulu.

import requests
from bs4 import BeautifulSoup
import pandas as pd

#empty array for stored 
rjudul=[]
rtahun=[]
rlink=[]
rsinopsis=[]

#fix scrape for multipage
page = 0
while (page <= 640):
    url ="http://filmindonesia.or.id/movie/title/list/genre/horor/"+str(page)
    film = requests.get(url)
    page=int(page)
    page += 10
    #print(url)
    soup=BeautifulSoup(film.content,'html.parser')
    #print (soup.prettify())
    
    judul = soup.select(".movie-list .clearfix .content-lead > a:nth-of-type(1)")
    juduls = [js.get_text() for js in judul]
    rjudul+=juduls
    
    tahun = soup.select(".movie-list .clearfix .content-lead > a:nth-of-type(2)")
    tahuns = [ts.get_text() for ts in tahun]
    rtahun+=tahuns
    
    link = soup.select(".movie-list .clearfix .content-lead > a:nth-of-type(1)")
    links = [ls['href'] for ls in link]
    rlink+=links
    
    #issue null value
    sinopsis=soup.find_all('li','clearfix')
    for sinopsiss in sinopsis:
        #sinopsis=sin.p.get_text()
        try:
            sinopsis = sinopsiss.find('p').get_text()
        except AttributeError:
            sinopsis = "sinopsis tidak tersedia"
        rsinopsis.append(sinopsis)
    
#print(len(rjudul))
#print(len(rtahun))
#print(len(rlink))
#print(len(rsinopsis))
#array to dataframe pandas
daftar_film={'juduls':rjudul,'tahuns':rtahun, 'link':rlink, 'sinopsis':rsinopsis}
df=pd.DataFrame(daftar_film)
print(df)
df.to_csv('indonesian_horor_movie.csv')

Berikutnya untuk kerangka berfikirnya, admin membuatnya seperti ini.

Tentukan url main target yang akan kamu scrape, dalam hal ini admin memilih http://filmindonesia.or.id/movie/title/list/genre/horor/ Sebagai halaman yang akan admin scrape dengan menggunakan jupyter notebook pythone.

import requests

Mencari library yang dapat digunakan untuk mengirim request untuk mengakses halaman tersebut untuk berikutnya discrape. Cukup anda ketikan digoogle Library to Scrape with Python or Scrape With Python. Dari sana admin mendapatkannya banyak informasi Akan tetapi kali ini admin mendapatkan informasi tersebut dari teman admin. Yakni dengan menggunakan requests. untuk mengaksesnya cukup anda ketikan requests.get(url) dengan link tadi anda masukan kedalam variabel url.
url ="http://filmindonesia.or.id/movie/title/list/genre/horor/"
film = requests.get(url)
Namun berdasarkan link dari url tersebut ternyata untuk isinya dibagi kedalam beberapa halaman, jadi kita harus melakukan scrape beberapa halaman atau scrape next page atau scrape multiple page. Bagaimana idenya? Admin sendiri menggunakan perulangan atau looping dalam hal ini yakni dengan while. kita bisa melihat dari perbedaan tiap next halamannya yakni dari http://filmindonesia.or.id/movie/title/list/genre/horor/ ke http://filmindonesia.or.id/movie/title/list/genre/horor/10 untuk page atau halaman berikutnya jadi kita menggunakan perubahan itu untuk membuat loopnya. Dimana akan terjadi penambahan 10 setiap loopnya, namun karena 10 merupakan int dan link tersebut dianggap str jadi kita mencoba untuk menyesuaikannya dengan menggunakan variabel page
page = 0
while (page <= 640):
    url ="http://filmindonesia.or.id/movie/title/list/genre/horor/"+str(page)
    film = requests.get(url)
    page=int(page)
    page += 10
untuk pembatasnya disesuaikan dengan jumlah pagenya, namun jika anda tidak mengetahui ambil saja angka terbesar. Disini saya mengambil 640 karena digenre yang lain ada yang menyentuh angka tersebut. Jika tidak salah bergenre film indonesia bergenre action, jadi bisa diganti-ganti ya genrenya, namun karena admin suka horor jadi ambil horor

Berikutnya agar lebih rapih kita akan menggunakan library lainnya yakni beautifulsoup, silakan anda baca documentasinya untuk lebih memahaminya.

from bs4 import BeautifulSoup
Sekarang kita akan mencoba untuk merapikan requests yang telah kita buat sebelumnya didalam soup seperti dibawah ini.

soup=BeautifulSoup(film.content,'html.parser')
Jika anda ingin melihat perbedaannya silakan print beberapa variabel yang memuat request dan variabel yang memuat beautifulsoup. atau silakan print url, apakah sudah berjalan sesuai dengan perulangannya

print (url)
Selanjutnya silakan perhatikan code diatas ya, anda coba-coba sendiri biar paham. Kalau dijelasin semua nanti tidak ada inisiatifnya, anda coba pahami terlebih dahulu, baru jika ada yang bingung silakan ditanyakan. Syukur-syukur bisa paham langsung. Untuk anda yang ingin code dalam bentuk file format jupyter notebook atau hasil scrapenya silakan kunjungi github admin ya di

https://github.com/andriimanundin27/scrape_indonesia_movie_horor_webpage

Baca Juga ya


BAGIKAN
Previous
Next Post »
0 Komentar