Membuat Web Scraper dengan BeautifulSoup – Panduan Lengkap
Diterbitkan: 2024-03-19Bagi mereka yang ingin memanfaatkan kekuatan data web, BeautifulSoup menonjol sebagai alat yang ampuh dan intuitif. Pustaka Python ini dirancang untuk tujuan pengikisan web, memungkinkan Anda mengekstrak informasi spesifik dari halaman web dengan mudah. Panduan ini akan memandu Anda membuat web scraper menggunakan BeautifulSoup, memproses web scrape dengan beautifulsoup, mulai dari menyiapkan lingkungan hingga menguraikan dan mengekstrak data yang Anda perlukan.
Pengantar Pengikisan Web dengan BeautifulSoup
Pengikisan web adalah proses pengumpulan informasi secara terprogram dari World Wide Web. Ini adalah teknik berharga yang digunakan dalam penambangan data, pengumpulan informasi, dan tugas otomatisasi. BeautifulSoup, dipadukan dengan pustaka permintaan Python, menyediakan pendekatan langsung terhadap web scraping, sehingga dapat diakses oleh pemrogram dari semua tingkatan. Pengikisan Web dengan BeautifulSoup melibatkan berbagai prasyarat.
Prasyarat
Sebelum mendalami BeautifulSoup, pastikan Anda memenuhi prasyarat berikut:
- Pengetahuan dasar tentang pemrograman Python.
- Python diinstal di sistem Anda.
- Keakraban dengan HTML dan struktur halaman web.
Menyiapkan Lingkungan Anda
- Instal Python : Pastikan Python diinstal pada sistem Anda. Python 3 direkomendasikan karena fitur dan dukungannya yang ditingkatkan.
- Instal BeautifulSoup dan Permintaan : Buka baris perintah atau terminal Anda dan instal perpustakaan yang diperlukan menggunakan pip, penginstal paket Python. Jalankan perintah berikut:
pip instal sup cantik4
permintaan pemasangan pip
Membuat Scraper Web Pertama Anda
Membuat web scraper pertama Anda dengan BeautifulSoup adalah langkah menarik dalam dunia ekstraksi data dari web. Panduan ini akan memandu Anda mempelajari dasar-dasar menyiapkan scraper sederhana menggunakan Python dan BeautifulSoup untuk mengambil dan mengurai konten web secara efisien. Kami akan mengikis kutipan dari “http://quotes.toscrape.com”, sebuah situs web yang dirancang untuk melatih keterampilan web scraping.
Langkah 1: Menyiapkan Lingkungan Python Anda
Pastikan Python diinstal di komputer Anda. Anda juga memerlukan dua perpustakaan utama: permintaan untuk membuat permintaan HTTP untuk mendapatkan halaman web, dan beautifulsoup4 untuk menguraikan konten HTML.
Jika Anda belum menginstal pustaka ini, Anda dapat melakukannya menggunakan pip, penginstal paket Python. Buka terminal atau command prompt Anda dan jalankan perintah berikut:
pip instal sup cantik4
permintaan pemasangan pip
Langkah 2: Ambil Halaman Web
Untuk melakukan scraping web dengan BeautifulSoup, mulailah dengan menulis skrip Python untuk mengambil konten HTML dari halaman yang ingin Anda scrape. Dalam hal ini, kami akan mengambil kutipan dari “http://quotes.toscrape.com”.
permintaan impor
# URL website yang ingin dikikis
url = 'http://quotes.toscrape.com'
# Gunakan perpustakaan permintaan untuk mendapatkan konten situs web
respon = permintaan.dapatkan(url)
# Pastikan permintaan berhasil
jika respon.status_code == 200:
print("Halaman web berhasil diambil!")
kalau tidak:
print("Gagal mengambil halaman web.")
Langkah 3: Parsing Konten HTML dengan BeautifulSoup
Setelah Anda mengambil halaman web, langkah selanjutnya adalah mengurai konten HTML-nya. BeautifulSoup membuat tugas ini menjadi mudah. Buat objek BeautifulSoup dan gunakan untuk mengurai teks respons.
dari bs4 impor BeautifulSoup
# Buat objek BeautifulSoup dan tentukan parsernya
sup = BeautifulSoup(response.teks, 'html.parser')
# Cetak HTML yang telah dipretifikasi untuk melihat strukturnya
cetak(sup.prettify())
Langkah 4: Mengekstrak Data dari HTML
Sekarang setelah HTML Anda diuraikan, Anda dapat mulai mengekstraksi data yang Anda minati. Mari kita ekstrak semua kutipan dari halaman tersebut.
# Temukan semua elemen <span> dengan kelas 'teks' dan ulangi elemen tersebut
tanda kutip = sup.find_all('span', class_='text')
untuk kutipan dalam tanda kutip:
# Cetak konten teks setiap <span>
cetak(kutipan.teks)
Cuplikan ini menemukan semua elemen <span> dengan teks kelas—yang berisi tanda kutip pada halaman—dan mencetak konten teksnya.
Langkah 5: Melangkah Lebih Jauh
Anda juga dapat mengekstrak informasi lain, seperti penulis kutipan:
# Temukan semua elemen <small> dengan kelas 'penulis'
penulis = sup.find_all('kecil', kelas_='penulis')
untuk penulis di penulis:
# Cetak isi teks setiap <small> yang berisi nama penulis
cetak(penulis.teks)
Ini akan mencetak nama masing-masing penulis sesuai dengan kutipan yang Anda ekstrak.
Praktik dan Pertimbangan Terbaik
- Hormati Robots.txt : Selalu periksa file robots.txt suatu situs web (misalnya, http://quotes.toscrape.com/robots.txt) sebelum melakukan scraping. Ini memberi tahu Anda kebijakan scraping situs web.
- Menangani Pengecualian : Pastikan kode Anda menangani kesalahan jaringan atau respons yang tidak valid dengan baik.
- Pembatasan Nilai : Perhatikan jumlah permintaan yang Anda kirim ke situs web untuk menghindari pemblokiran.
- Pertimbangan Hukum : Waspadai implikasi hukum dari web scraping dan pastikan aktivitas Anda mematuhi undang-undang dan persyaratan layanan situs web yang relevan.
Kesimpulan
BeautifulSoup, dengan kesederhanaan dan kekuatannya, membuka banyak kemungkinan untuk ekstraksi data dari web. Baik Anda mengumpulkan data untuk analisis, memantau perubahan situs web, atau mengotomatiskan tugas, pengikisan web dengan BeautifulSoup adalah keterampilan yang sangat berharga dalam perangkat pemrograman Anda. Saat Anda memulai perjalanan web scraping, ingatlah untuk melakukan scraping secara bertanggung jawab dan etis, serta menghormati situs web tempat Anda berinteraksi. Selamat menggores!