Di dunia yang digerakkan oleh data saat ini, metode pengumpulan data manual tradisional sudah ketinggalan zaman. Komputer dengan koneksi internet di setiap meja menjadikan web sebagai sumber data yang sangat besar. Dengan demikian, metode pengumpulan data modern yang lebih efisien dan hemat waktu adalah web scraping. Dan dalam hal pengikisan web, Python memiliki alat bernama Beautiful Soup. Dalam posting ini, saya akan memandu Anda melalui langkah-langkah instalasi Beautiful Soup untuk memulai web scraping.
Sebelum menginstal dan bekerja dengan Beautiful Soup, mari cari tahu mengapa Anda harus melakukannya.
Apa itu Sup Cantik?
Anggaplah Anda sedang meneliti “dampak COVID pada kesehatan manusia” dan telah menemukan beberapa halaman web yang berisi data yang relevan. Tetapi bagaimana jika mereka tidak menawarkan opsi unduhan sekali klik untuk meminjam data mereka? Inilah Beautiful Soup yang berperan.
Beautiful Soup adalah salah satu indeks pustaka Python untuk menarik data dari situs yang ditargetkan. Lebih nyaman mengambil data dari halaman HTML atau XML.
Leonard Richardson membawa ide Beautiful Soup untuk menggores web pada tahun 2004. Namun kontribusinya pada proyek tersebut berlanjut hingga hari ini. Dia dengan bangga memperbarui setiap rilis baru Beautiful Soup di akun Twitter-nya.
Meskipun Beautiful Soup untuk pengikisan web dikembangkan menggunakan Python 3.8, ia bekerja sempurna dengan Python 3 dan Python 2.4 juga.
Seringkali situs web menggunakan perlindungan captcha untuk menyelamatkan data mereka dari alat AI. Dalam hal ini, beberapa perubahan pada tajuk ‘agen-pengguna’ di Beautiful Soup atau menggunakan API pemecah Captcha dapat meniru peramban yang andal dan mengelabui alat pendeteksi.
Namun, Jika Anda tidak punya waktu untuk menjelajahi Beautiful Soup atau ingin pengikisan dilakukan secara efisien dan mudah, maka Anda tidak boleh melewatkan memeriksa API pengikisan web ini, di mana Anda cukup memberikan URL dan mendapatkan datanya. tanganmu.
Jika Anda sudah menjadi pemrogram, menggunakan Beautiful Soup untuk scraping tidak akan menakutkan karena sintaksnya yang langsung dalam menavigasi halaman web dan mengekstrak data yang diinginkan berdasarkan parsing bersyarat. Pada saat yang sama, ini juga ramah pemula.
Meskipun Beautiful Soup bukan untuk pengikisan tingkat lanjut, ini berfungsi paling baik untuk mengikis data dari file yang ditulis dalam bahasa markup.
Dokumentasi yang jelas dan terperinci adalah poin brownies lain yang dikantongi Beautiful Soup.
Mari temukan cara mudah untuk memasukkan Soup cantik ke dalam mesin Anda.
Bagaimana cara menginstal Beautiful Soup untuk Web Scraping?
Pip – Manajer paket Python yang mudah dikembangkan pada tahun 2008 sekarang menjadi alat standar di antara pengembang untuk menginstal pustaka atau dependensi Python apa pun.
Pip hadir secara default dengan pemasangan versi Python terbaru. Jadi, jika Anda memiliki versi Python terbaru yang terinstal di sistem Anda, Anda siap melakukannya.
Buka command prompt dan ketik perintah pip berikut untuk menginstal Soup cantik secara instan.
pip install beautifulsoup4
Anda akan melihat sesuatu yang mirip dengan tangkapan layar berikut di layar Anda.
Pastikan Anda telah memperbarui penginstal PIP ke versi terbaru untuk menghindari kesalahan umum.
Perintah untuk memperbarui penginstal pip ke versi terbaru adalah:
pip install --upgrade pip
Kami telah berhasil menutupi setengah dari tanah di pos ini.
Sekarang Anda telah menginstal Beautiful Soup di mesin Anda, jadi mari selami cara menggunakannya untuk web scraping.
Bagaimana Mengimpor dan Bekerja dengan Beautiful Soup untuk Web Scraping?
Ketik perintah berikut di IDE python Anda untuk mengimpor Soup yang indah ke dalam skrip python saat ini.
from bs4 import BeautifulSoup
Sekarang Beautiful Soup ada di file Python Anda untuk digunakan untuk scraping.
Mari kita lihat contoh kode untuk mempelajari cara mengekstrak data yang diinginkan dengan Beautiful Soup.
Kami dapat memberi tahu Soup yang cantik untuk mencari tag HTML tertentu di situs web sumber dan mengikis data yang ada di tag tersebut.
Pada bagian ini, saya akan menggunakan marketwatch.com, yang memperbarui harga saham real-time dari berbagai perusahaan. Mari ambil beberapa data dari situs web ini untuk membiasakan diri Anda dengan perpustakaan Beautiful Soup.
Impor paket “permintaan” yang memungkinkan kami menerima dan menanggapi permintaan HTTP dan “urllib” untuk memuat halaman web dari URL-nya.
from urllib.request import urlopen import requests
Simpan tautan halaman web dalam variabel agar Anda dapat mengaksesnya nanti dengan mudah.
url="https://www.marketwatch.com/investing/stock/amzn"
Selanjutnya adalah menggunakan metode “urlopen” dari perpustakaan “urllib” untuk menyimpan halaman HTML dalam sebuah variabel. Lewati URL ke fungsi “urlopen” dan simpan hasilnya dalam sebuah variabel.
page = urlopen(url)
Buat objek Beautiful Soup dan parsing halaman web yang diinginkan menggunakan “html.parser”.
soup_obj = BeautifulSoup(page, 'html.parser')
Sekarang seluruh skrip HTML dari halaman web yang ditargetkan disimpan dalam variabel ‘soup_obj’.
Sebelum melanjutkan, mari kita lihat kode sumber halaman yang ditargetkan untuk mengetahui lebih lanjut tentang skrip dan tag HTML.
Klik kanan di mana saja di halaman web dengan mouse Anda. Kemudian Anda akan menemukan opsi inspeksi, seperti yang ditampilkan di bawah ini.
Klik periksa untuk melihat kode sumber.
Pada kode sumber di atas, Anda dapat menemukan tag, kelas, dan informasi yang lebih spesifik tentang setiap elemen yang terlihat di antarmuka situs web.
Metode “temukan” di beautiful Soup memungkinkan kita untuk mencari tag HTML yang diminta dan mengambil datanya. Untuk melakukan ini, kami memberikan nama dan tag kelas ke metode yang mengekstrak data tertentu.
Misalnya, “Amazon.com Inc.” ditampilkan di halaman web memiliki nama kelas: ‘company__name’ yang diberi tag di bawah ‘h1’. Kami dapat memasukkan informasi ini ke dalam metode ‘temukan’ untuk mengekstrak cuplikan HTML yang relevan ke dalam variabel.
name = soup_obj.find('h1', attrs={'class': 'company__name'})
Mari tampilkan skrip HTML yang disimpan dalam variabel “nama” dan teks yang diperlukan di layar.
print(name) print(name.text)
Anda dapat menyaksikan data yang diekstraksi tercetak di layar.
Web Kikis situs web IMDb
Banyak dari kita mencari rating film di situs IMBb sebelum menonton film. Demonstrasi ini akan memberi Anda daftar film berperingkat teratas dan membantu Anda terbiasa dengan Soup yang indah untuk pengikisan web.
Langkah 1: Impor Soup yang indah dan perpustakaan permintaan.
from bs4 import BeautifulSoup import requests
Langkah 2: Mari tetapkan URL yang ingin kita kikis ke variabel yang disebut ‘url’ untuk memudahkan akses dalam kode.
Paket “permintaan” digunakan untuk mendapatkan halaman HTML dari URL.
url = requests.get('https://www.imdb.com/search/title/?count=100&groups=top_1000&sort=user_rating')
Langkah 3: Dalam cuplikan kode berikut, kami akan mem-parsing halaman HTML dari URL saat ini untuk membuat objek Soup yang indah.
soup_obj = BeautifulSoup(url.text, 'html.parser')
Variabel “soup_obj” sekarang berisi seluruh skrip HTML dari halaman web yang diinginkan, seperti pada gambar berikut.
Mari periksa kode sumber halaman web untuk menemukan skrip HTML dari data yang ingin kita ambil.
Arahkan kursor ke elemen halaman web yang ingin Anda ekstrak. Selanjutnya, klik kanan padanya dan lanjutkan dengan opsi inspeksi untuk melihat kode sumber dari elemen spesifik itu. Visual berikut akan memandu Anda dengan lebih baik.
‘Daftar daftar’ kelas berisi semua data terkait film berperingkat teratas sebagai sub-divisi dalam tag div berturut-turut.
Di setiap skrip HTML kartu film, di bawah kelas ‘lister-item mode-advanced’, kami memiliki tag ‘h3’ yang menyimpan nama film, peringkat, dan tahun rilis, seperti yang disorot pada gambar di bawah.
Catatan: Metode “temukan” dalam pencarian Soup yang indah untuk tag pertama yang cocok dengan nama input yang diberikan padanya. Tidak seperti “find”, metode “find_all” mencari semua tag yang cocok dengan masukan yang diberikan.
Langkah 4: Anda dapat menggunakan metode “temukan” dan “temukan_semua” untuk menyimpan skrip HTML dari setiap nama film, peringkat, dan tahun dalam variabel daftar.
top_movies = soup_obj.find('div',attrs={'class': 'lister-list'}).find_all('h3')
Langkah 5: Ulangi daftar film yang disimpan dalam variabel: “top_movies” dan ekstrak nama, peringkat, dan tahun setiap film dalam format teks dari skrip HTML-nya menggunakan kode di bawah ini.
for movie in top_movies: movi_name = movie.a.text rank = movie.span.text.rstrip('.') year = movie.find('span', attrs={'class': 'lister-item-year text-muted unbold'}) year = year.text.strip('()') print(movi_name + " ", rank+ " ", year+ " ")
Di screenshot keluaran, Anda dapat melihat daftar film dengan nama, peringkat, dan tahun rilisnya.
Anda dapat dengan mudah memindahkan data yang dicetak ke dalam lembar excel dengan beberapa kode python dan menggunakannya untuk analisis Anda.
Kata Akhir
Posting ini memandu Anda dalam menginstal Soup yang indah untuk pengikisan web. Juga, contoh goresan yang saya tunjukkan akan membantu Anda memulai dengan Beautiful Soup.
Karena Anda tertarik dengan cara menginstal Beautiful Soup untuk pengikisan web, saya sangat menyarankan Anda melihat panduan yang dapat dipahami ini untuk mengetahui lebih banyak tentang pengikisan web menggunakan Python.