Pengambilan (scrape) data ke website (Book to scrape)
Haloo.... Kali ini kita akan membahas tentang bagaimana cara pengambilan (scrape) data ke website yang sesungguhnya
Langsung saja simak penjelasannya :D
Pada website https://books.toscrape.com/catalogue/page-1.html kita akan mengambil data judul, rating dan harga
Langkah pertama kita asosiasikan terlebih dahulu library yang digunakan.
from bs4 import BeautifulSoup
import requests
import pandas as panda
Kemudian untuk mengambil data star kita menggunkan def cekStar degan parameter kata
jika parameter kata == one maka tampilkan angka 1 dst.
def cekStar(kata):
if kata == 'One':
return 1
elif(kata == 'Two'):
return 2
elif(kata == 'Three'):
return 3
elif(kata == 'Four'):
return 4
else:
return 5
Pada variable html ini kita ambil requests dari website https://books.toscrape.com/catalogue/page-1.html
Kemudian memakai beutifulsoup dan mengambil content dari variable html yang telah dibuat. Kita menggunakan section find(cari) .Lalu cari elemen ol dengan class row. Dan dari elemen ol cari semua kelas li, kemudian buat variabel data untuk menampung
req = requests.get('https://books.toscrape.com/catalogue/page-1.html')
html = BeautifulSoup(req.content, 'html.parser')
section = html.find('section')
ol = section.find('ol', class_='row')
li = ol.findAll('li')
data = []
Lakukan perulangan pada item li
Buat variabel artcle cari elemen article ,lalu variabel stars cari elemen p .dengan atribut class index 1.
Pada variabel h3 cari article element h3 dan element a. selanjutnya pada variabel price cari elemen div dengan class product_price ,cari element p class price_color
for items in li:
article = items.find('article')
star = items.find('p').attrs['class'][1]
h3 = article.find('h3').find('a').text
price = items.find('div', class_='product_price').find(
'p', class_='price_color').text
Lalu tambahkan seluruh variabel pada variabel data. Lalu tampilkan pada frame dengan format books.csv dengan library panda
data.append({
'books': h3,
'star': cekStar(star),
'price': price
})
frame = panda.DataFrame(data)
frame.to_csv('books.csv', index=False, encoding='utf-8')
Sekian penjelasannya, semoga bermafaat. Terimakasih :D
Komentar
Posting Komentar