Scrab Tabel Klasemen Premier League via BeautifulSoup

A.Rofiqi Maulana
2 min readFeb 13, 2021

Kadangkala kita mempunyai kebutuhan untuk mengambil suatu data berbentuk tabel yang ada di suatu website. Sebenarnya kita bisa mengambil data tersebut dengan copy paste, namun jika data yang dibutuhkan banyak, kompleks dan butuh update setiap hari maka kita perlu melakukan “scraping”.

Kali ini saya akan mencontohkan cara mengambil data tabel klasemen liga inggris yaitu di https://www.bbc.com/sport/football/tables

Klasemen Liga Inggris

Untuk melakukan scrap klasemen liga inggris tersebut, kita perlu mengetahui sedikit pengetahuan mengenai html. Tahapan scrap tabel tersebut bisa kita bagi menjadi 2 proses yaitu

  1. Identifikasi Pattern
  2. Proses Scrapping

1. Identifikasi Pattern

Identifikasi pattern ini bertujuan untuk melihat pola dari struktur data di tabel tersebut, class dan tag apa yang akan kita gunakan untuk parsing. Identifikasi pattern ini bisa kita lakukan dengan cara inspect element.

Tabel klasemen liga inggris mempunyai class table
Tag tr menunjukkan baris
Tag td menunjukkan sel atau elemen
Tag th menujukkan nama kolom

Berdasarkan hasil inspect element tersebut bisa kita simpulkan bahwa

  1. tabel mempunyai class table
  2. tag tr menunjukkan baris
  3. tag td menunjukkan isi tabel
  4. tag th menunjukkan nama kolom
  5. strukur html secara garis besar : table > tr > [td,th]

2. Proses Scrapping

Setelah kita mengetahui struktur html dan patternnya, maka kita bisa melakukan proses scrapping data tabel tersebut. Proses scrapping selengkapnya melalui Jupyter Notebook bisa dilihat disini.

Untuk mendapatkan data yang sesuai dengan format yang kita tentukan, maka kita perlu tau logic dibaliknya. Setelah kita melakukan parsing URL tersebut menggunakan BeautifulSoup, maka selanjutnya

  1. Cari element yang mempunya class table hal ini karena data yang akan kita scrab berbentuk tabel
  2. Karena tabel yang ada di website tersebut hanya ada satu, maka kita tidak perlu melakukan perulangan terhadap table
  3. Kita akan melakukan perulangan tiap baris (tag tr) dan mengambil list data di setiap baris tersebut (tag th dan td)
  4. Lakukan proses data cleaning seperti menghapus kolom yang tidak dibutuhkan dan mengganti nama kolom

--

--