Belajar Dasar Web Scraping Menggunakan BeautifulSoup
3 Comments
2 April 2020

Belajar Dasar Web Scraping Menggunakan BeautifulSoup

Web Scraping Menggunakan BeautifulSoup

Pada materi kali ini kita akan belajar Web Scraping Menggunakan BeautifulSoup. Ada berbagai cara dan metode untuk mendapatkan data dari internet salah satunya melalui data scraping. Selain data scraping anda juga dapat mendapatkan data melalui data crawling. Untuk data scrapping sendiri penggunaanya beragam seperti pada toko online atau online shop yang biasaya digunakan oleh para dropshipper untuk memudahkan mereka dalam mengelola toko online nya. Sedangkan untuk data crawling , contoh penggunaannya sering kita temui pada mesin pencari di google. Data yang muncul pada mesin pencari ketika kita mengetikkan suatu keyword pada kolom pencarian tersebut merupakan hasil crawling.

Data Scraping VS Data Crawling

Data Scrapping merupakan kegiatan untuk menemukan data dan mengumpulkannya. Data diambil secara langsung dari sebuah sumber, tidak hanya dari web tetapi bisa dari berbagai sumber dimana terdapat data. Ini mencakup spreadsheets,storage devices, dll. Proses ini diperlukan untuk menyaring (filtering) dan membedakan berbagai jenis data mentah dari berbagai sumber menjadi sesuatu yang berguna dan informatif.

Data Crawling adalah cara mengumpulkan semua data dalam suatu website dengan menggunakan metode tertentu dan secara otomatis (web crawling). Web crawler akan mengunjungi setiap alamat website yang diberikan kepadanya, kemudian menyerap (scraping) dan menyimpan semua informasi yang terkandung didalam website tersebut. Setiap kali web crawler mengunjungi sebuah website, maka dia juga akan mendata semua link yang ada dihalaman yang dikunjunginya itu untuk kemudian dikunjungi lagi satu persatu. Proses crawling dalam suatu website dimulai dari mendata seluruh url dari website, menelusurinya satu-persatu, kemudian memasukkannya dalam daftar halaman pada indeks search engine, sehingga setiap kali ada perubahan pada website, akan terupdate secara otomatis. Web crawling adalah proses mengambil kumpulan halaman 1 dari sebuah web untuk dilakukan pengindeksan sehingga mendukung kinerja mesin pencari.

Apa itu 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. Untuk kalian yang menggunakan Python3 tidak perlu khuwatir karena Library BeautifulSoup ini telah ada pada Python versi 3. Untuk penjelasan lebih lanjut mengenai library BeautifulSoup ini kalian dapat mengunjungi situs resminya di sini.

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 kalian 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

Langsung saja kita mulai tutorial web scraping kita kali ini menggunakan library BeautifulSoup kali ini. Pada tutorial pembelajaran web scraping python menggunakan beautifulsoup ini saya tidak menggunakan objek website asli untuk dilakukan scrapping akan tetapi pada tutorial ini kita akan berfokus ke konsep serta cara penggunaanya . Berikut adalah tutorialnya :

  • Pada tutorial yang pertama ini kita akan mencoba untuk melakukan scrapping terhadap semua data yang berada didalam tag <html> berikut adalah scribtnya :
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 :
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 berdada 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 :
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 :
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.

Sekian artikel saya yang membahas tentang belajar web scraping dengan python menggunakan beautifulsoup kali ini . kalian juga dapat membaca lanjutan dari tutorial ini yaitu proses implementasinya dengan studi kasus menggunakan website salah satu online shop yaitu shopee pada link berikut Cara Scrape Web Shopee dengan Python.

Incoming Search Terms :

  • cara instal beautifulsoup
  • cara scraping web dengan python
  • cara crawling data dengan python
  • belajar web scraping dengan python
  • import requests from bs4 import beautifulsoup
  • tutorial: web scraping python
  • scraping berita
  • belajar beautifulsoup python2
  • web scraping python beautifulsoup
  • belajar web scraping
  • belajar request python
  • web crawling python

3 Comments

  1. […] Sekian artikel saya kali ini yang telah membahas ploting data dengan library matplotlib jangan lupa baca artikel saya yang lain tentang belajar web scrapping dengan beautifulsoup […]

  2. wahyu hidayat

    23 Januari 2021

    Thanks penjelasanya sangat jelas sekali, mohon terus update ya kak soal python nya.
    Salam

  3. firman

    15 Mei 2021

    Terima kasih

Leave a Comment

Your email address will not be published.