Programming

Python Data Scraping untuk Pemula

oleh Ekky Armandi • 16 Okt 2023

![[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:

  1. Menginstall dependencies

    pip install requests-html
  2. 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 dan harga.

  3. Melakukan GET request ke target website menggunakan library requests-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 object HTMLSession sebagai session, kemudian melakukan GET requests menggunakan metode get pada session seperti session.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 dengan 200berarti kita diberi akses oleh server untuk terhubung ke website tersebut yang berarti HTML berhasil didownload dan dapat diakses melalui response.text.

  4. Mengekstrak data judul dan harga menggunakan pola css selector seperti dibawah dan assign sebagai variabel buku dengan tipe data dictionary.

    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",
    }
  5. 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

Follow me on