Tutorial Membaca File HTML dan Mengakses Elemen dengan Beautiful Soup


Menjelajahi struktur HTML

Beautiful Soup adalah sebuah library Python yang digunakan untuk mengekstrak data dari dokumen HTML dan XML. Dalam memulai penggunaan Beautiful Soup, langkah pertama yang harus dilakukan adalah menjelajahi struktur HTML.

Struktur HTML terdiri dari tag, atribut, dan konten. Tag adalah elemen HTML seperti <div>, <p>, <h1>, dll. Atribut adalah properti dari tag seperti class, id, style, dll. Konten adalah isi dari tag seperti teks, gambar, link, dll.

Membaca file HTML

Beautiful Soup dapat membaca file HTML baik yang disimpan di lokal komputer ataupun yang diambil dari internet. Berikut adalah contoh cara membaca file HTML menggunakan Beautiful Soup:

from bs4 import BeautifulSoup

with open("index.html") as fp:
    soup = BeautifulSoup(fp, 'html.parser')

Membuat objek Beautiful Soup

Setelah file HTML berhasil dibaca, selanjutnya adalah membuat objek Beautiful Soup. Objek ini nantinya akan digunakan untuk melakukan ekstraksi data dari dokumen HTML. Berikut adalah contoh cara membuat objek Beautiful Soup:

from bs4 import BeautifulSoup

with open("index.html") as fp:
    soup = BeautifulSoup(fp, 'html.parser')

# atau
soup = BeautifulSoup("data", 'html.parser')

Mencari elemen HTML

Beautiful Soup memiliki berbagai cara untuk mencari elemen HTML, di antaranya:

  • find()
  • find_all()
  • select()

Metode find() digunakan untuk mencari elemen HTML berdasarkan tag, atribut, atau konten. Berikut adalah contoh penggunaannya:

# mencari tag <div>
div = soup.find('div')

# mencari tag <a> dengan atribut href
a = soup.find('a', href='http://example.com/')

# mencari tag &lt

Metode find_all() digunakan untuk mencari semua elemen HTML yang sesuai dengan kriteria pencarian. Berikut adalah contoh penggunaannya:

# mencari semua tag <div>
divs = soup.find_all('div')

# mencari semua tag <a> dengan atribut href
links = soup.find_all('a', href='http://example.com/')

Metode select() memungkinkan pencarian elemen HTML dengan menggunakan CSS selector. Berikut adalah contoh penggunaannya:

# mencari tag <p> dengan class "intro"
intro = soup.select('p.intro')

# mencari tag <a> dengan class "external" di dalam tag <div> dengan id "footer"
links = soup.select('div#footer a.external')

Menjelajahi pohon elemen HTML

Setelah berhasil menemukan elemen HTML yang diinginkan, langkah selanjutnya adalah menjelajahi pohon elemen HTML. Pada pohon elemen HTML, setiap elemen memiliki relasi parent-child. Berikut adalah contoh cara menjelajahi pohon elemen HTML:

# mencari parent dari suatu elemen
parent = elemen.parent

# mencari sibling dari suatu elemen
next_sibling = elemen.next_sibling
prev_sibling = elemen.previous_sibling

# mencari semua parent dari suatu elemen
parents = elemen.parents

# mencari child dari suatu elemen
children = elemen.children

# mencari semua child dari suatu elemen
descendants = elemen.descendants
Demikianlah penjelasan mengenai dasar-dasar Beautiful Soup dalam menjelajahi struktur HTML, membaca file HTML, membuat objek Beautiful Soup, mencari elemen HTML, dan menjelajahi pohon elemen HTML. Dengan memahami dasar-dasar ini, diharapkan pengguna dapat lebih mudah dalam mengimplementasikan Beautiful Soup untuk kebutuhan pengambilan data dari dokumen HTML dan XML.

Contoh

Berikut adalah contoh-contoh untuk menjelajahi atau mengakses semua elemen pada dokumen HTML menggunakan Beautiful Soup:

Mengakses semua tag:

from bs4 import BeautifulSoup

html = '''
<html>
    <head>
        <title>Contoh HTML</title>
    </head>
    <body>
        <h1>Judul</h1>
        <p>Paragraf 1</p>
        <p>Paragraf 2</p>
        <ul>
            <li>Item 1</li>
            <li>Item 2</li>
        </ul>
    </body>
</html>
'''

soup = BeautifulSoup(html, 'html.parser')

tags = soup.find_all()
for tag in tags:
    print(tag)
Hasilnya adalah sebagai berikut:
<html>
<head>
<title>Contoh HTML</title>
</head>
<body>
<h1>Judul</h1>
<p>Paragraf 1</p>
<p>Paragraf 2</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
</body>
</html>
<head>
<title>Contoh HTML</title>
</head>
<title>Contoh HTML</title>
<body>
<h1>Judul</h1>
<p>Paragraf 1</p>
<p>Paragraf 2</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
</body>
<h1>Judul</h1>
<p>Paragraf 1</p>
<p>Paragraf 2</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
<li>Item 1</li>
<li>Item 2</li>

Mengakses semua tag pada sebuah elemen:

from bs4 import BeautifulSoup

html = '''
<html>
    <head>
        <title>Contoh HTML</title>
    </head>
    <body>
        <div class="container">
            <h1>Judul</h1>
            <p>Paragraf 1</p>
            <p>Paragraf 2</p>
            <ul>
                <li>Item 1</li>
                <li>Item 2</li>
            </ul>
        </div>
    </body>
</html>
'''

soup = BeautifulSoup(html, 'html.parser')

div = soup.find('div', {'class': 'container'})
tags = div.find_all()
for tag in tags:
    print(tag)
Hasilnya adalah sebagai berikut:
<h1>Judul</h1>
<p>Paragraf 1</p>
<p>Paragraf 2</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
Mengakses semua atribut pada sebuah tag:
from bs4 import BeautifulSoup

html = '''
<html>
    <head>
        <title>Contoh HTML</title>
    </head>
    <body>
        <div class="container">
            <h1>Judul</h1>
            <p>Paragraf 1</p>
            <p>Paragraf 2</p>
            <ul>
                <li>Item 1</li>
                <li>Item 2</li>
            </ul>
        </div>
    </body>
</html>
'''

soup = BeautifulSoup(html, 'html.parser')

ul = soup.find('

Posting Komentar untuk "Tutorial Membaca File HTML dan Mengakses Elemen dengan Beautiful Soup"