Web Scraping: Mengambil data dari Website orang lain dengan Python dan Urllib


Bacaaja.com, Medan – Bayangin kamu lagi nyari-nyari harga laptop terbaru di berbagai toko online. Capek kan kalau harus buka satu per satu website, lalu banding-bandingin harganya? Nah, di sinilah web scraping bisa jadi penyelamat. Dengan web scraping, kamu bisa buat program Python yang secara otomatis ngambil data harga dari berbagai website, lalu secara otomatis tinggal lihat hasilnya dalam bentuk tabel atau grafik. Keren kan?


Web Scraping itu apa sih sebenarnya?

Asian Teenager Girl learning online python coding class on laptop computer at home. Homeschool studying with programmer teacher on tablet while Lockdown. Education concept by gettyimage


Secara sederhana, web scraping itu seperti lagi nge-copy paste data dari website. Bedanya, kalau manual kamu harus ngetik satu per satu, kalau web scraping pekerjaan melelahkan itu dapat dilakukan oleh program tersebut secara otomatis. Program ini akan mengunjungi website yang kamu targetkan, lalu mencari data yang diinginkan (misalnya harga, judul yang kamu sukai atau artikel, deskripsi), dan menyimpannya ke dalam format yang lebih mudah untuk diolah atau diedit, seperti file Excel atau database.


Kenapa harus Python dan Urllib?

Python code in IDE by gettyimage


Python itu seperti bahasa pemrograman yang ramah banget buat pemula. Sintaksnya mudah dipahami dan ada banyak banget library ataupun perangkat tambahan yang bisa dipakai untuk berbagai keperluan termasuk web scraping. Salah satu library bawaan Python yang sering dipakai untuk web scraping adalah urllib. Library ini fungsinya mirip seperti browser, dia dapat mengirim permintaan ke website dan menerima responsnya.


Yuk, Cobain Web Scraping Sederhana!


Misalnya mau ngambil judul artikel dari halaman utama sebuah blog media. Pertama-tama, kamu perlu impor library urllib.request. Library ini bakal digunakan untuk mengirim permintaan ke website atau blog media yang sudah ditargetkan.

import urllib.request
Buka halaman utama blog media
with urllib.request.urlopen('https://www.bacaaja.com') as response:
html = response.read()

Kode di atas akan membuka halaman utama bacaaja.com dan menyimpan seluruh isi halamannya ke dalam variabel html. Nah, isi variabel html ini berupa kode HTML, yaitu bahasa yang dipahami oleh komputer untuk menampilkan halaman web.

Sekarang kan sudah punya kode HTML-nya, tapi bagaimana cara ngambil judul artikel dari situ? Di sinilah kamu membutuhkan bantuan library BeautifulSoup. Library ini fungsinya seperti sisir ibumu, yang dapat menyisir setiap kode HTML dan mencari elemen-elemen tertentu yang diinginkan loh.

from bs4 import BeautifulSoup
Parse HTML menggunakan BeautifulSoup


soup=BeautifulSoup(html,'html.parser')

#Cari semua tag <h1>
judul_berita = soup.find_all('h1')


#Cetak judul berita
for judul in judul_berita:print(judul.text)

Kode di atas akan mencari semua tag dalam kode HTML. Biasanya, tag digunakan untuk menandai judul utama. Setelah ketemu, cetak isi teks dari setiap tag

Tips dan Trik Web Scraping


Hormati robots.txt karena Setiap website punya aturan mainnya sendiri soal web scraping. Biasanya aturan ini ditulis dalam file robots.txt. Jangan sampai kita melanggar aturannya ya!
Sembunyikan identitas karena bisa saja Website target dapat melakukan tindakan pemblokiran terhadap permintaan dari program kamu. Atau siasati dengan menyamar sebagai browser biasa dengan cara mengubah User-Agent.
Jangan terlalu sering mengirim permintaan ke website yang sama ya karena bisa-bisa kita diblokir, lho. Sebaiknya kasih jeda waktu yang cukup untuk setiap permintaan.
Struktur HTML setiap website berbeda-beda loh.. Semakin paham kamu dengan struktur HTML maka semakin mudah dalam mengambil data yang diiinginkan. Dengan Python dan urllib, kamu dapat dengan mudah mengambil data dari berbagai website. Tapi ingat ya bahwa web scraping juga punya etika yang harus dipatuhi, Jangan sampai menyalahgunakan teknologi ini untuk hal-hal yang merugikan orang lain.

Editor : Tim Bacaaja.com

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *