BeautifulSoup - Akses HTML Tag



Dengan beautifulsoup kita bisa akses tag pada file html, bila kita langsung akses tag tertentu misalnya div, maka yang akan diambil adalah tag pertama pada skema html.

Untuk kemudahan, disini digunakan string variable yang berisi struktur html. Contoh file isi file html adalah sebagai berikut:

<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Intro To Soup</title>
    </head>
    <body class="first second" style="">
        <div>
            <p style="color:red;">In first div</p>
        </div>
        <div>
            <p>In second div</p>
        </div>
    </body>
</html>

Kita dapat mengakses tag pertama pada struktur html dengan langsung menuliskan tag tersebut, contoh soup.div, yang diambil adalah tag div pertama.

Untuk mengakses meta, gunakan method soup.meta, sering digunakan untuk mengambil atribut charset yang digunakan. Untuk mengakses atribut charset, gunakan perintah get, soup.meta.get('charset').

Cara kedua adalah soup.meta['charset'], akan menghasilkan return yang sama. Namun perlu diperhatikan, bila index atribut yang diakses tidak ada, akan mengembalikan error. Sementara dengan menggunakan metoda get, error silently pass.

Note: BeautifulSoup akan mengembalikan None, jika kita berusaha mengakses atribut atau tag yang tidak ada pada file html.

Kita juga bisa mengubah isi dari atribute sebuah tag, contoh kita ingin memberikan style pada body soup.body['style'] = 'background-color:white;'

Jika atribut suatu tag memiliki multivalue, maka BeautifulSoup akan mengembalikan berupa list. Contoh pada html, class dari body ada dua, maka kita akan mendapatkan list ['first', 'second']

Karena berupa list, kita bisa mengaksesnya dengan cara seperti soup.body['class'][0] yang akan mengembalikan nilai first.

>>> import bs4 from BeautifulSoup

>>> html_doc = "isi dengan string format html diatas"
>>> soup = BeautifulSoup(html_doc, 'lxml')

>>> print(soup.div)
<div>
<p style="color:red;">In first div</p>
</div>
>>> print(soup.meta)
<meta charset="utf-8"/>
>>> print(soup.meta.get('charset'))
UTF-8
>>> soup.body['style'] = 'background-color:white;'
>>> soup.body
<body class="first second" style="background-color:white;">
<div>
<p style="color:red;">In first div</p>
</div>
<div>
<p>In second div</p>
</div>
</body>
>>> print(soup.body['class'])
['first', 'second']
>>> print(soup.body['class'][0])
first

Navigable String

Teks dalam sebuah tag, dapat diretrive melalui property .string yang sering disebut navigable strings.

Bila diperlukan, isi teks tersebut juga bisa diganti dengan fungsi .replace_with("teks goes here")

>>> print(soup.title.string)
Intro To Soup
>>> soup.title.string.replace_with("Title telah diganti")


BeautifulSoup - Akses HTML Tag BeautifulSoup - Akses HTML Tag Reviewed by noname needed on May 25, 2018 Rating: 5

No comments:

Powered by Blogger.