Pengenalan BeautifulSoup dan Requests


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

        Saat pertama kali menginstall Python library ini belum termasuk didalamnya sehingga kalian perlu menginstallnya terlebih dahulu jika mau menggunakanya. Cara install beautifulsoup cukuplah mudah , bagi pengguna linux dapat menginstallnya dengan mengetikkan perintah sudo apt-get install beautifulsoup4 atau dengan menggunakan pip install beautifulsoup4 pada terminal kalian . Untuk pengguna Anaconda kalian dapat menginstallnya dengan menggunakan perintah conda install -c anaconda beautifulsoup4. Walaupun beautifulsoup bekerja dengan baik dengan parsher bawaan dari Python yaitu html.parser akan tetapi kalian juga dapat menggunakan parser lain seperti  lxml, dan html5lib. Untuk menginstall parser lxml dan html5lib dapat menggunakan perintah pip install lxml atau pip install html5lib.

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 :

Belajar Dasar Web Scraping Menggunakan Beautiful Soup

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 :

Web Scraping Menggunakan Beautiful Soup

Penjelasan :

        Soup.h1 digunakan untuk mengambil semua data yang mempunyai tag <h1> , sedangkan soup.h1.text berfungsi untuk melakukan mengambil semua data text yang berada didalam tag <h1> . Soup.a berfungsi untuk mengambil data yang memiliki tag a sedangkan soup.a.text berfungsi untuk mengambil data text yang berada didalam tag <a>, sedangkan soup.a[‘href’] berfungsi untuk mengambil data link pada tag <a>.

  • 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 :

Data Scraping VS Data Crawling

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 :

Belajar Dasar Web Scraping Menggunakan BeautifulSoup

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.

Requests Library

        Requests adalah sebuah HTTP library dalam bahasa pemrograman python dengan lisensi open source (Apache2). Library ini menyediakan mekanisme untuk mengirimkan request ke suatu alamat web dengan protokol HTTP/1.1. Library ini menyediakan banyak kemudahan untuk menyesuaikan parameter pada isi request yang dikirim, baik headerform datamulipart files dan parameter lainnya.

        Requests adalah modul Python yang bisa kamu gunakan untuk mengirim berbagai request HTTP. Requests adalah library yang mudah digunakan dengan banyak fitur mulai dari melempar parameter dalam URL sampai mengirim header khusus dan verifikasi SSL. Dalam tutorial ini, kamu akan belajar bagaimana menggunakan library ini untuk mengirim request HTTP sederhana dalam Python.




Subscribe to receive free email updates:

0 Response to "Pengenalan BeautifulSoup dan Requests"