![[images/tips-koding/Untitled 5.png|source: https://unsplash.com/photos/f77Bh3inUpE]]
Data scraping adalah algoritma yang digunakan untuk mengambil data yang tertera pada suatu laman website (HTML atau API) yang kemudian diubah kedalam format data yang dibutuhkan.
Umumnya algoritma data scraping dibutuhkan untuk mengumpulkan data demi kepentingan membangun database, melakukan analisa, riset, dan sumber latihan bagi artificial intelegence (AI).
Algoritma Data Scraping
Secara konsep, algoritma data scraping membutuhkan internet untuk mengakses website dan beberapa functions untuk mengekstrak data lalu kemudian mengubahnya kedalam format data yang dibutuhkan.
Bagi kamu yang masih pemula dan ingin belajar tentang data scraping menggunakan Python. Dibawah ini adalah langkah-langkah paling minimal yang diperlukan untuk kamu melakukan data scraping pada suatu website:
-
Menginstall dependencies
pip install requests-html
-
Menentukan website dan data yang ingin diekstrak. Pada tutorial ini kita akan menggunakan website https://books.toscrape.com dan data yang akan kita ekstrak adalah
judul
danharga
. -
Melakukan
GET
request ke target website menggunakan libraryrequests-html
dan download HTML.from requests_html import HTMLSession url = "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html" session = HTMLSession() response = session.get(url) print(response.status_code)
Untuk melakukan
GET
requests ke website, pertama-tama kita harus meng-assign terlebih dahulu objectHTMLSession
sebagaisession
, kemudian melakukanGET
requests menggunakan metodeget
padasession
sepertisession.get(url)
, kamu tidak perlu khawatir dengan object, assigning-classes (variabel dengan huruf kapital) adalah bagian dari proses deklaratif variabel agar dapat digunakan.response.status_code
sama dengan200
berarti kita diberi akses oleh server untuk terhubung ke website tersebut yang berarti HTML berhasil didownload dan dapat diakses melaluiresponse.text
. -
Mengekstrak data
judul
danharga
menggunakan polacss selector
seperti dibawah dan assign sebagai variabelbuku
dengan tipe datadictionary
.buku = { "judul": response.html.find("h1", first=True).text, "harga": response.html.find("p.price_color", first=True).text, } print(buku) # output { "judul": "A Light in the Attic", "harga": "£51.77", }
-
Ubah data kedalam bentuk dan tipe daya yang diinginkan menggunakan teknik manipulasi seperti regular expression (regex)
# ubah harga kedalam tipe data float (angka dengan pecahan) result = re.search("[0-9.,]+", buku["harga"]) harga = result.group(0) buku["harga"] = float(harga)
Gunakan teknik Regular Expression dengan pattern
[0-9.,]+
yang berarti “ambil semua karakter dengan angka 0 hingga 9, titik, dan koma dari kata pertama didalam kalimat.” Group 0 berarti mengambil kelompok pertama yang ditemukan.
Source Code
# import libraries
from requests_html import HTMLSession
import re
# tentukan website target
url = "https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html"
# melakukan GET requests ke website dan memparser HTML
session = HTMLSession()
response = session.get(url)
if response.status_code == 200:
parse = HTMLParser(response.text)
# Ekstrak data judul dan harga
buku = {
"judul": response.html.find("h1", first=True).text,
"harga": response.html.find("p.price_color", first=True).text,
}
# ubah harga kedalam tipe data float (angka dengan pecahan)
result = re.search("[0-9.,]+", buku["harga"])
if result:
harga = result.group(0)
buku["harga"] = float(harga)
# tampilkan data
print(buku)
Kesimpulan
Sejauh ini kamu sudah paham konsep dasar dari data scraping dan mengerti bagaimana cara membuat algoritma data scraping menggunkan Python. Singkatnya tahapan data scraping adalah: mendownload file HTML dari internet, memparsingnya (dalam tutorial ini parsing sudah dilakukan oleh HTMLSession), mengekstrak data yang dibutuhkan menggunakan css selector, memformat ulang tipe data menggunakan regex, dan meng-assign data tersebut kedalam variabel.
Sebagai bahan latihan lebih lanjut, cobalah untuk menambahkan beberapa artibut seperti image url
dan description
dari contoh website yang digunakan diatas. Atau coba lakukan paginasi dari laman 1 hingga 50 menggunakan cara yang sama.
Semoga tutorial ini membantu kamu belajar dan dapat menambah pengetahuan kamu tentang project yang dapat dibangun menggunakan bahasa pemrograman Python.
Kalau ada yang ingin ditanyakan seputar tulisan ini, silahkan kirim ke email saya ekkyarmandi@gmail.com