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
Posting Komentar