Scrape Data dari books.tscrape.com
Halo semua. Kali ini saya akan membahas
tentang cara scrape data pada website
https://books.toscrape.com/catalogue/page-1.html.
Jadi kita akan mengambil data judul ,rating dan harga
Yang pertama kita asosiasikan terlebih
dahulu library yang digunakan .
from
bs4
import
BeautifulSoup
import
requests
import
pandas
as
panda
lalu 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
Nah pada variable html ini
kita ambil requests dari web https://books.toscrape.com/catalogue/page-1.html
Lalu 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')
Komentar
Posting Komentar