Artikel.2 (Pengenalan BeautfulSoup dan Requests)

Nama : Na'imah 
Nim   : 1120101838
Kelas : SP3.1

Web Scraping Part 2 : Tutorial Web Scraping dengan BeautifulSoup di Python

Pada artikel pertama yaitu pengenalan web scraping dengan BeautifulSoup di Python telah dijelaskan konsep dasar dari library BeautifulSoup dan Struktur web http://quotes.toscrape.com/

Struktur Web http://quotes.toscrape.com/

 

Scraping Single Quote

Untuk permulaan kita akan coba scrape data dari satu quote yaitu quote pertama dari Albert Einstein

Dibutuhkan library requests untuk mengambil halaman website yang akan di-scraping

import requests

Kemudian kita gunakan fungsi get() dengan parameter alamat website

requests.get("http://quotes.toscrape.com/")

Kita cek status_code jika hasil yang dikeluarkan adalah <Response [200]> berarti koneksi sukses

Sedangkan untuk mengambil halaman HTML yang diakses kita gunakan properti content

Berikut adalah potongan kode penggunaan library request

import requests

page = requests.get("http://quotes.toscrape.com/")

print(page.status_code)

print(page.content)

 

Ekstrak Halaman dengan BeautifulSoup

Selanjutnya gunakan library BeautifulSoup untuk mengambil element HTML yang ingin disimpan seperti konten quote, author, tag dengan menggunakan class attribut di kode HTML.

Setelah mengetahui class attribut gunakan fungsi find() atau find_all() untuk mengekstrak konten dari halaman website

BeautifulSoup memanfaatkan atribut class / id untuk mengambil data dari halaman web.

Untuk mengetahui class attribut dari elemen yang ingin diekstrak gunakan tool inspect element di browser sepert pada materi part 1

#1 Quote

Inspect quote pertama dari Albert Einstein dan dapatkan nama class yang digunakan

Tag yang digunakan adalah <span> dengan nama classs text

Gunakan library BeautifulSoup dengan fungsi find() untuk mengekstrak quote pertama

from bs4 import BeautifulSoup

 

import requests

page = requests.get("http://quotes.toscrape.com/")

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

quote = soup.find('span', class_='text')

print(quote)

 

Jika hanya ingin mengambil quote saja tanpa tag HTML tambarkan properti text di akhir fungsi find()seperti ini

quote = soup.find('span', class_='text').text

#2 Author

Tag yang digunakan untuk Author adalah <small> dengan nama class author

 

author = soup.find('small', class_='author')

print(author)

 
#3 Tags

Dan terakhir adalah tags dari quote

Untuk element tags agak sedikit lebih rumit karena setiap tags diapit oleh <a> yang berada di dalam <div> sehingga tags harus disimpan ke dalam List

Dibutuhkan fungsi find() untuk mengambil konten <div> dan fungsi find_all() untuk mengambil isi dari <a>

Tambahkan kode berikut untuk mengambil text dari tags yang disimpan ke dalam List

 

tags = [tag.text for tag in soup.find('div', class_='tags').find_all('a', class_='tag')]

print(tags)

 

Final Code

Berikut adalah final code untuk scraping single quote

from bs4 import BeautifulSoup
import requests
page = requests.get("http://quotes.toscrape.com/")
soup = BeautifulSoup(page.content, 'html.parser')
quote = soup.find('span', class_='text').text
author = soup.find('small', class_='author').text
tags = [tag.text for tag in soup.find('div', class_='tags').find_all('a', class_='tag')]
print(quote)
print(author)

print(tags)

Komentar

Postingan populer dari blog ini

Scrape Data Shopee Menggunakan Python

Program Kasir Sederhana Menggunakan PYTHON

Scrape Data Toko di Tokopedia