Pengertian BeautifulSoup
BeautifulSoup merupakan library bawaan dari Python untuk parsing HTML dan XML . BeautifulSoup bekerja dengan parser bawaan python atau parser lain lxml atau html5lib untuk mempermudah anda dalam mengambil data dari suatu situs web. Pada saat ini beautiful soup telah sampai pada versi yang ke 4.
Instalasi BeautifulSoup
Memulai Web Scraping Menggunakan BeautifulSoup..
- Pada tutorial yang pertama ini kita akan mencoba untuk melakukan scrapping terhadap semua data yang berada didalam tag <html> berikut adalah scribtnya :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | from bs4 import BeautifulSoup htmltxt = ''' <!DOCTYPE html> <html> <head> </head> <body> <h1>Web Scraping</h1> <a href="webku.html">Link ke Webku</a> </body> </html> ''' soup = BeautifulSoup(htmltxt, 'lxml' ) print ( "Hasil Pertama :" ) print (soup) print ( "Hasil Kedua :" ) print (soup.text) print ( "Hasil ketiga :" ) print (soup.text.strip())
|
Hasilnya adalah sebagai berikut :

Penjelasan :
Dari scribt diatas diketahui jika beautiful soup membutuhkan 2 argumen yaitu pada argumen pertama adalah markup yang ingin diproses dan argumen yang kedua adalah parser yang ingin digunakan. Soup berfungsi untuk menampilkan keseluruhan hasil scraping sedang soup.text akan menampilkan hasil scraping data yang berupa teks saja dan soup.text.strip() berfungsi untuk menampilkan data teks serta menghilangkan jarak diantara hasil teksnya.
- Pada tutorial yang kedua ini kita akan mempelajari tentang cara mengambil data pada suatu tag html tertentu sehingga hasilnya pun menjadi semakin spesifik. Berikut adalah contoh dari scribtnya :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | from bs4 import BeautifulSoup htmltxt = ''' <!DOCTYPE html> <html> <head> </head> <body> <h1>Web Scraping</h1> <a href="webku.html">Link ke Webku</a> </body> </html> ''' soup = BeautifulSoup(htmltxt, 'lxml' ) print (soup.h1) print (soup.h1.text) print (soup.a) print (soup.a.text) print (soup.a[ 'href' ])
|
Hasilnya adalah sebagai berikut :

Penjelasan :
- Pada tutorial yang ke tiga ini kita akan mempersempit lagi pengambilan datanya sehingga data yang dihasilkan menjadi semakin akurat. Teknik ini digunakan jika didalam suatu script html banyak memiliki tag ganda semisal didalam suatu halaman website memiliki sepuluh tag <div> sehingga jika kita akan menggunakan teknik pada tutorial yang kedua tadi maka hasil yang didapatkan pun adalah sepuluh data. Untuk mengatasi hal tersebut kita dapat menggunakan fungsi find() atau find_all() dengan parameter berupa kelas atau id pada tag html untuk mengambil datanya sehingga hasilnya akan menjadi semakin akurat. Berikut adalah contoh scribtnya :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | from bs4 import BeautifulSoup htmltxt = ''' <!DOCTYPE html> <html> <head> </head> <body> <h1>Web Scraping</h1> <a href="webku.html">Link ke Webku</a> <div class="dua"> tes </div> <p> ini hanya percobaan </p> </body> </html> ''' soup = BeautifulSoup(htmltxt, 'lxml' ) print ( "Ambil Text dari link : " ) print (soup.find( 'a' ).text) print ( "Ambil Text Paragraf : " ) print (soup.find( 'p' ).text) print ( "Ambil Data Paragraf : " ) print (soup.find_all( 'p' )) print ( "Ambil Text dari link di Class dua" ) print (soup.find( "div" , attrs = { 'class' : 'dua' }))
|
Hasilnya adalah sebagai berikut :

Penjelasan :
Fungsi find(‘a’).text berfungsi untuk menemukan tag <a> dan mengambil data text yang berada didalamnya , sedangkan fungsi find(‘p’).text digunakan untuk menemukan tag paragraf atau tag <p> dan mengambil data text yang berada didalamnya. Untuk fungsi find_all(‘p’) digunakan untuk mengambil semua data yang memiliki tag <p> sedangkan fungsi find(“div”, attrs={‘class’:’dua’}) digunakan untuk mengambil data yang memiliki tag <div> dengan kelas dua atau jika ditulis keseluruhan adalah “<div class:’dua’></div>”
- Pada yang ke empat tadi kita sudah mempelajari teknik pengambilan data dengan menggunakan atrribut kelas pada suatu tag , namun dari hal tersebut terdapat suatu problem dimana jika kita ingin mengambil data dari tag tertentu akan tetapi pada tag tersebut tidak memiliki atribut kelas maupun id ?. Hal tersebut dapat diatasi dengan cara menggunakan kelas atau id pada tag pembungkus yang kita ingin ambil datanya. Berikut adalah contoh scribtnya :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | from bs4 import BeautifulSoup htmltxt = ''' <!DOCTYPE html> <html> <head> </head> <body> <h1>Web Scraping</h1> <div class="dua"> <a href="webku.html">Link ke Webku</a> </div> </body> </html> ''' soup = BeautifulSoup(htmltxt, 'lxml' ) print ( "Ambil Text dari link di Class dua" ) d = soup.find( "div" , attrs = { 'class' : 'dua' }) link = d.find( 'a' ) print (link.text)
|
Hasilnya adalah sebagai berikut :

Penjelasan :
Dari script diatas fungsi “find(“div”, attrs={‘class’:’dua’})” akan digunakan untuk mengambil data yang memiliki tag <div class=”dua”> kemudian datanya akan disimpan kedalam variabel bernamaa d . Hasil data yang disimpan pada variabel d ini kemudian diambil lagi datanya yang memiliki tag <a> dan hasilnya disimpan pada variabel link. Pada akhir scribt data text yang berada pada isi dari variabel link akan ditampilkan sehingga hasilnya seperti pada gambar diatas.
0 Response to "Pengenalan BeautifulSoup dan Requests"
Post a Comment