Pada artikel sebelumnya kita telah sukses melakukan web scraping single-quote dari halaman http://quotes.toscrape.com/ dengan library BeautifulSoup di Python. Selanjutnya kita akan mengambil multi-quote dari satu halaman
Kalau kita lihat http://quotes.toscrape.com/ pada halaman pertama terdapat 20 quote. Berikut adalah contoh 3 quote-nya
![Tutorial web scraping dengan beautifulsoup di python](https://ngodingdata.com/wp-content/uploads/2019/12/Selection_008.png)
Jika dilakukan inspect element maka diketahui bahwa tag HTML yang digunakan oleh setiap quote adalah sama
![Tutorial web scraping dengan beautifulsoup di python](https://ngodingdata.com/wp-content/uploads/2019/12/Selection_009-1024x206.png)
Berikut adalah outer HTML dari quote
![](https://ngodingdata.com/wp-content/uploads/2019/12/image-26.png)
Bahwa setiap quote berada di tag <div>
dengan nama class quote
Di dalam tag <div>
baru terdapat tag-tag HTML lainnya untuk menyimpan konten seperti quote, author, dan tags
Berikut adalah satu contoh kode HTML dari satu qoute
![Tutorial web scraping dengan beautifulsoup di python](https://ngodingdata.com/wp-content/uploads/2019/12/Selection_010-1024x359.png)
Scrap all quotes
Karena setiap quote kode HTML yang digunakan sama gunakan fungsi find_all()
untuk mengambil semua konten quote dalam satu halaman
Jika menggunakan fungsi find()
hanya quote pertama yang akan diambil (seperti pada materi scraping single quote)
Gunakan tag <div>
dengan nama class quote
from bs4 import BeautifulSoup import requests page = requests.get("http://quotes.toscrape.com/") soup = BeautifulSoup(page.content, 'html.parser') quotes = soup.find_all('div', class_='quote') print(quotes)
![Tutorial web scraping dengan beautifulsoup di python](https://ngodingdata.com/wp-content/uploads/2019/12/Selection_011-1024x355.png)
Setelah mendapatkan konten dari setiap quote selanjutnya setiap quote akan diambil konten text quote, author, dan tags
-nya
Untuk memudahkan mengambil konten setiap quote gunakan perulangan.
Note : Silahkan baca materi perulangan di python
Berikut adalah kodenya untuk mengambil setiap elemen di quote menggunakan perulangan
for q in quotes: quote = q.find('span', class_='text').text author = q.find('small', class_='author').text tags = [tag.text for tag in q.find('div', class_='tags').find_all('a', class_='tag')]
quotes
merupakan list dari semua quote yang diambil dengan BeautifulSoup
Setiap iterasi dalam quotes
akan diambil konten quote, author, dan tags
-nya
Hasilnya adalah
![Tutorial web scraping dengan beautifulsoup di python](https://ngodingdata.com/wp-content/uploads/2019/12/Selection_012-1024x315.png)
Final Code
Berikut adalah final code untuk web scraping multi-quote dalam di halaman pertama
from bs4 import BeautifulSoup import requests page = requests.get("http://quotes.toscrape.com/") soup = BeautifulSoup(page.content, 'html.parser') quotes = soup.find_all('div', class_='quote') for q in quotes: quote = q.find('span', class_='text').text author = q.find('small', class_='author').text tags = [tag.text for tag in q.find('div', class_='tags').find_all('a', class_='tag')] print(quote) print(author) print(tags)