Pustaka Python Sumber Terbuka untuk Mem-parsing HTML/XML & Mengekstrak Data
Beautiful Soup adalah Pustaka Python Parsing Sumber Terbuka Terdepan yang Mem-parsing HTML/XML yang Berantakan, Mengekstrak Teks/Tautan, Menavigasi Pohon, dan Mendukung Alur Kerja Web Scraping Modern.
Apa itu Beautiful Soup?
Web scraping telah menjadi keterampilan penting bagi ilmuwan data, pengembang, dan peneliti yang perlu mengekstrak informasi berharga dari situs web. Beautiful Soup menjadi salah satu perpustakaan Python yang paling populer dan ramah pengguna untuk mengurai dokumen HTML dan XML. Sejak dibuat pada tahun 2004, alat yang kuat ini telah menghemat waktu programmer berjam-jam dalam proyek web scraping. API perpustakaan yang intuitif, dokumentasi yang luar biasa, dan dukungan komunitas yang aktif memastikan bahwa baik pemula maupun pengembang berpengalaman dapat mengekstrak data web secara efisien.
Beautiful Soup adalah perpustakaan Python yang dirancang khusus untuk mengekstrak data dari file HTML dan XML. Ini adalah perpustakaan Python yang kuat yang telah menghemat waktu programmer berjam-jam atau berhari-hari pada proyek web scraping sejak 2004. Dengan hanya beberapa baris kode, Anda dapat melakukan kueri kompleks seperti, kesederhanaan dan kemudahan penggunaan, menemukan semua tautan, mengekstrak konten teks, konversi enkoding otomatis, fleksibilitas parser, penanganan error yang kuat, pencarian dan ekstraksi tautan dari halaman web, dan banyak lagi.
Perpustakaan Beautiful Soup mengubah tugas yang sering membuat frustrasi dalam mengekstrak data dari dokumen HTML dan XML menjadi proses Pythonik yang sederhana, mengonversi konten web yang tidak terstruktur dengan baik menjadi pohon parse yang rapi dan terorganisir yang dapat Anda jelajahi dan cari dengan metode sederhana. Apa yang secara tradisional memakan waktu berjam-jam pengkodean manual dapat diselesaikan dalam hitungan menit dengan Beautiful Soup. Ia tetap menjadi standar industri bagi pengembang Python yang memasuki dunia web scraping. Kesederhanaannya, dikombinasikan dengan kekuatan berbagai parser, menjadikannya pilihan tak tertandingi untuk mengekstrak data dari situs web statis.
Memulai dengan Beautiful Soup
Cara yang direkomendasikan dan paling mudah untuk menginstal Beautiful Soup adalah menggunakan pip. Silakan gunakan perintah berikut untuk instalasi yang lancar.
Instal Library Beautiful Soup melalui pip
pip install beautifulsoup4 Anda juga dapat menginstalnya secara manual; unduh file rilis terbaru langsung dari halaman web Beautiful Soup.
Bekerja dengan Beberapa Parser
Library Beautiful Soup tidak melakukan semua parsing sendiri — sebaliknya, ia berada di atas parser yang matang seperti html.parser bawaan Python, parser lxml yang cepat, dan html5lib yang mirip browser. Tergantung pada kebutuhan, Anda dapat memprioritaskan kecepatan atau kepatuhan terhadap standar. Arsitektur ini memberi Anda fleksibilitas untuk memilih parser yang paling cocok dengan kebutuhan Anda, menukar kecepatan parsing dengan fleksibilitas, mencoba strategi parsing yang berbeda tanpa mengubah kode Beautiful Soup Anda, dan sebagainya. Kode sederhana berikut menunjukkan bagaimana pengembang dapat menggunakan parser yang berbeda dengan Beautiful Soup.
Bagaimana Cara Menggunakan Beberapa Parser untuk Mengurai Dokumen HTML di Dalam Aplikasi Python?
# Using different parsers with Beautiful Soup
html_doc = "Contoh konten
"
# Using lxml parser (fast)
soup_lxml = BeautifulSoup(html_doc, 'lxml')
# Using html5lib parser (slower but more lenient)
soup_html5lib = BeautifulSoup(html_doc, 'html5lib')
# Using Python's built-in parser
soup_builtin = BeautifulSoup(html_doc, 'html.parser')
Mengekstrak Tautan dari Halaman Web
Mengambil tautan adalah tugas web scraping yang umum, terutama berguna untuk membangun perayap web. Perpustakaan sumber terbuka Beautiful Soup telah menyertakan dukungan untuk memuat halaman web dan mengekstrak tautan darinya dalam aplikasi Python. Contoh kode sederhana berikut menunjukkan cara mengambil halaman web live menggunakan perpustakaan requests, kemudian mengekstrak semua tag anchor dalam aplikasi Python.
Bagaimana Cara Mengekstrak Tautan dari Halaman Web menggunakan Python?
from bs4 import BeautifulSoup
import requests
# Fetch a real webpage
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# Extract all links
links = soup.find_all('a')
print(f"Found {len(links)} links:")
for link in links:
href = link.get('href')
text = link.get_text().strip()
print(f"Text: {text} | URL: {href}")
# Filter links by criteria
external_links = []
for link in soup.find_all('a'):
href = link.get('href')
if href and href.startswith('http'):
external_links.append(href)
print(f"\nFound {len(external_links)} external links")
Mencari Elemen HTML Spesifik
Salah satu kekuatan terbesar Beautiful Soup adalah cara alaminya yang memungkinkan Anda mencari HTML, hampir seperti membaca bahasa Inggris biasa. Alih-alih berurusan dengan API DOM yang kompleks, Anda cukup mendeskripsikan apa yang Anda inginkan, dan Beautiful Soup akan menemukannya untuk Anda. Misalkan Anda ingin menemukan semua tautan pada sebuah halaman. Anda dapat menggunakan metode find_all seperti yang ditunjukkan dalam contoh kode berikut. Metode tersebut mengembalikan daftar semua tag tautan. Kami kemudian mengiterasi mereka untuk mengekstrak URL dan teks guna mendapatkan nama tautan yang terlihat menggunakan API Python.
Bagaimana Cara Mencari dan Mengekstrak Elemen HTML Spesifik dari Halaman Web melalui API Python?
# Extract all anchor tags
links = soup.find_all('a')
for link in links:
href = link.get('href')
text = link.text.strip()
print(f"Text: {text} | URL: {href}")
Penanganan Encoding Otomatis
Salah satu fitur paling nyaman dari Beautiful Soup adalah konversi enkoding otomatisnya. Perpustakaan ini secara otomatis mengonversi dokumen masuk ke Unicode dan dokumen keluar ke UTF-8, menghilangkan salah satu sakit kepala paling umum dalam web scraping. Harap ingat bahwa Anda hanya perlu memikirkan enkoding ketika dokumen tidak menentukan enkoding karena Beautiful Soup tidak dapat mendeteksi enkoding secara otomatis. Dalam kasus yang jarang ini, Anda cukup menentukan enkoding asli secara manual.