Cara menggunakan parse html python beautifulsoup

Cara menggunakan parse html python beautifulsoup

Gambar: digitalocean.com


Scraping halaman web dengan python beautifulsoup. Scraping halaman web atau dalam Bahasa Inggrisnya web scraping,  adalah teknik yang digunakan untuk mengambil isi dari sebuah halaman web secara spesifik, misalnya link, teks, gambar, tabel dan lain-lain.

Sebelum mengenal python, saya terbiasa melakukan web scraping dengan menggunakan perintah

pip install beautifulsoup4
0,
pip install beautifulsoup4
1 dan
pip install beautifulsoup4
2 pada Linux, dengan mengandalkan teknik replace pada
pip install beautifulsoup4
2 dan sedikit bumbu regexp (regular expression).

Baca: Sed dan AWK, dua perintah favorit! simple but powerfull

Namun teknik di atas tersebut, tidak pernah saya gunakan kembali setelah mengenal python!

Dengan bantuan library beautifulsoup, pekerjaan mengambil data dari sebuah halaman web menjadi sangat mudah. Pada artikel kali ini saya akan mempraktikkan secara sederhana mengenai cara kerja dari beautifulsoup.

Perlu dicatat, saya menggunakan sistem operasi Linux tepatnya distro Ubuntu 18.04.

Namun tidak perlu khawatir jika anda menggunakan sistem operasi lain, misalnya Windows, karena python merupakan bahasa pemrograman yang bisa berjalan dan mendukung berbagai platform sistem operasi. Selengkapnya mengenai python bisa dibaca disini.

Instalasi BeautifulSoup

Seperti yang telah saya jelaskan pada artikel sebelumnya, bagi sebagian distro Linux umumnya python sudah terinstall secara default. Silahkan cek dengan menggunakan perintah:
$ python -V
Python 2.7.15rc1

Bagi pengguna Windows, cara instalasinya dapat mengacu pada artikel: Python - Otomatisasi Web Browser dengan Selenium pada Windows 7.

Jika python sudah terinstall, saatnya kita melakukan instalasi beautifulsoup. Kita akan melakukannya menggunakan perintah
pip install beautifulsoup4
4.
pip install beautifulsoup4

Cara di atas yaitu kita menginstall BeautifulSoup 4 atau disingkat
pip install beautifulsoup4
5.
Catatan: jika
pip install beautifulsoup4
4 belum terinstall, silahkan jalankan perintah:
sudo apt-get install python-pip

Instalasi Parser

BeautifulSoup mendukung beberapa parser, selain parser HTML standar python itu sendiri yaitu:
pip install beautifulsoup4
7. Parser tesebut antara lain:
pip install beautifulsoup4
8,
pip install beautifulsoup4
9,
sudo apt-get install python-pip
0

Untuk menginstallnya sama saja, menggunakan perintah:
pip install nama-parser

Seperti yang dikutip dari laman resminya, sangat disarankan untuk menggunakan parser:
pip install beautifulsoup4
8 karena parser ini sangat cepat dibanding yang lainnya.

Tutorial BeautifulSoup: Scraping Tabel pada Halaman Wikipedia

Sebagai permulaan, kita akan mencoba melakukan web scraping sederhana, yaitu mengambil data dari salah satu tabel pada laman wikipedia berikut: Comparison of programming languages.

Cara menggunakan parse html python beautifulsoup


Jika kita buka link wikipedia tersebut, disana terdapat banyak tabel, dan tugas kita kali ini hanyalah mengambil data dari salah satu tabel yang tersedia pada laman tersebut menggunakan beautifulsoup.

#1 Menentukan Tabel

Tabel biasanya mempunyai identifier baik berupa ID maupun class. Untuk melihatnya silahkan buka alamat: https://en.wikipedia.org/wiki/Comparison_of_programming_languages menggunakan browser, arahkan cursor pada tabel yang dimaksud dan buka tools inspect element seperti gambar di bawah ini.

Cara menggunakan parse html python beautifulsoup


Sekarang lihat pada bagian yang diberi tanda merah, yaitu parameter table id dan table class. Kita hanya perlu salah satu dari itu. Sebagai contoh, dalam artikel ini saya akan menentukan tabel berdasarkan table id.

#2 Membuat Script Python-BeautifulSoup

Setelah menentukan tabel, sekarang kita akan membuat script python sederhana, silahkan salin script di bawah ini dan simpan dengan nama file:
sudo apt-get install python-pip
2.
#-*- coding: utf-8 -*-
#---------------------------------------
#!/usr/bin/python
#---------------------------------------
# Scrape wikipedia Table
#---------------------------------------

import urllib2
from bs4 import BeautifulSoup

def wikiTable():
        # Spesifikasikan alamat url:
        alamatURL = "https://en.wikipedia.org/wiki/Comparison_of_programming_languages"

        # Mengakses alamatURL
        page = urllib2.urlopen(alamatURL)
        
        # Memparse alamat diatas menggunakan parser: "lxml"
        soup  = BeautifulSoup(page, 'lxml')

        # Menemukan tabel yang menjadi target
        table = soup.find('table', id="Expressiveness")
        
        # Melakukan print table dalam bentuk tag HTML
        print table


wikiTable()
Eksekusi script tersebut:
python wikiTable1.py
Output-nya adalah sebagai berikut:
$ python wikiTable.py 
<table class="wikitable sortable" id="Expressiveness" style="float:right;">
<tr>
<th>Language</th>
<th>Statements ratio<sup class="reference" id="cite_ref-41"><a href="#cite_note-41">[36]</a></sup></th>
<th>Lines ratio<sup class="reference" id="cite_ref-42"><a href="#cite_note-42">[37]</a></sup></th>
</tr>
<tr>
<td>C</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>C++</td>
<td>2.5</td>
<td>1</td>
</tr>
<tr>
<td>Fortran</td>
<td>2</td>
<td>0.8</td>
</tr>
<tr>
<td>Java</td>
<td>2.5</td>
<td>1.5</td>
</tr>
<tr>
<td>Perl</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td>Smalltalk</td>
<td>6</td>
<td>6.25</td>
</tr>
<tr>
<td>Python</td>
<td>6</td>
<td>6.5</td>
</tr>
</table>

Bisa dilihat, output di atas masih dalam bentuk tag HTML. Bagaimana jika kita hanya ingin mengambil teksnya saja?
Baik, sekarang fokus pada baris kode
sudo apt-get install python-pip
3, coba kita ganti menjadi
sudo apt-get install python-pip
4 sehingga baris akhir kode diatas menjadi:
# Melakukan print table dalam bentuk tag HTML
 print table.text

Jika kita eksekusi kembali script tersebut, maka output-nya adalah sebagai berikut:
$ python wikiTable.py 

Language
Statements ratio[36]
Lines ratio[37]

C
1
1

C++
2.5
1

Fortran
2
0.8

Java
2.5
1.5

Perl
6
6

Smalltalk
6
6.25

Python
6
6.5

Baik, saya rasa sebagai pengantar, contoh di atas sudah cukup menggambarkan bagaimana cara kerja dari beautifulsoup. Selanjutnya:

Python: Web scraping dengan BeautifulSoup: print output tabel layaknya tabel
Happy coding!

Apa itu library BeautifulSoup?

6. BeautifulSoup Beautiful Soup adalah library terbaik untuk menarik data dari file HTML dan XML. Bisa digunakan bersama dengan parser favorit kita.

Apa itu beautifulsoup4?

BeautifulSoup adalah library Python yang digunakan untuk mengambil data HTML dan XML. BeautifulSoup berfungsi sebagai parser untuk memisahkan komponen-komponen HTML menjadi rangkain elemen yang mudah dibaca.