Blog Untuk Semua

Everything for Everyone

Parsing dokumen menggunakan BeautifulSoup pada python

Tinggalkan komentar

BeautifulSoup adalah library python yang di desain untuk project seperti screen-scraping. Ada 3 fitur powerful
yang dapat dibuat menggunakan library ini:

  1. Python menyediakan beberapa simple method dan pythonic idiom untuk navigasi, searching, modifikasi, dan parsing dokumen serta mengekstrak apa yang diinginkan. Dengan ini, membuat aplikasi pun jadi tidak membutuhkan banyak sekali kode.
  2. Kita tidak perlu pusing dengan urusan encoding, karena BeautifulSoup secara otomatis mengkonversi dokumen yang masuk menjadi Unicode dan yang keluar menjadi UTF-8. Jikalau dokumen tidak terdapat spesifikasi encoding apa yang dipakai dan BeautifulSoup tidak bisa mendeteksnya secara otomatis. Maka kita bisa menspesifikasikan sendiri encoding pada dokumen tersebut.
  3. BeautifulSoup juga termasuk top of popular Python parser seperti lxml dan html5lib, yang membuat anda untuk mencoba metode-metode lain dalam memparsing dokumen.

BeatifulSoup memparsing apapun yang anda inginkan. Anda hanya perlu mengetik beberapa kode untuk menemukan semua
link yang ada pada dokumen, atau mencari url match yang diakhiri dengan .com, atau juga mencari string dalam
dokumen tersebut.

Dalam contoh ini penulis membuat aplikasi sederhana yang menggunakan library BeautifulSoup dan juga beberapa
library lainnya seperti urllib2, logging, dan time. Dan berikut programnya :

#!/usr/bin/env python

# menghapus pesan peringatan atau error saat program dijalankan
import logging
logging.getLogger().setLevel(logging.ERROR)

from bs4 import BeautifulSoup
import urllib2
import time

idws = urllib2.urlopen("http://www.indowebster.com/")
soup = BeautifulSoup(idws.read())
tag = soup.find_all('dl')

# fungsi untuk parsing html bagian hot topics
def hot_topics():
    for dl_tag in tag:
        for span_tag in dl_tag.find_all("span", {"class" : "newThreadsBtn"}):
            if span_tag.string == "New Topics":
                print "\t===== " + span_tag.string + " from indowebster =====\n"
                for a_tag in dl_tag.find_all('a', {'class':'threadTitle tooltip-me'}):
                    print "[title] " +a_tag.string
                    print "[link]  " + a_tag.get('href') + "\n"

# fungsi untuk parsing html bagian new topics
def new_topics():
    for dl_tag in tag:
        for span_tag in dl_tag.find_all("span", {"class" : "newThreadsBtn"}):
            if span_tag.string == "Hot Topics":
                print "\t===== " + span_tag.string + " from indowebster =====\n"
                for a_tag in dl_tag.find_all('a', {'class':'threadTitle tooltip-me'}):
                    print "[title] " +a_tag.string
                    print "[link]  " + a_tag.get('href') + "\n"

if __name__ == '__main__':
    hot_topics()
    new_topics()

Referensi :

  1. http://www.crummy.com/software/BeautifulSoup/
  2. Python Documentations
  3. Vivek videos

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s