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 beautifulsoup40, pip install beautifulsoup41 dan pip install beautifulsoup42 pada Linux, dengan mengandalkan teknik replace pada pip install beautifulsoup42 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 beautifulsoup44.
pip install beautifulsoup4
Cara di atas yaitu kita menginstall BeautifulSoup 4 atau disingkat pip install beautifulsoup45.
Catatan: jika pip install beautifulsoup44 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 beautifulsoup47. Parser tesebut antara lain: pip install beautifulsoup48, pip install beautifulsoup49, sudo apt-get install python-pip0

Untuk menginstallnya sama saja, menggunakan perintah:
pip install nama-parser
Seperti yang dikutip dari laman resminya, sangat disarankan untuk menggunakan parser: pip install beautifulsoup48 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.


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: //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.


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-pip2.
#-*- coding: utf-8 -*- #--------------------------------------- #!/usr/bin/python #--------------------------------------- # Scrape wikipedia Table #--------------------------------------- import urllib2 from bs4 import BeautifulSoup def wikiTable(): # Spesifikasikan alamat url: alamatURL = "//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.pyOutput-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-pip3, coba kita ganti menjadi sudo apt-get install python-pip4 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.

Postingan terbaru

LIHAT SEMUA