Teknik Web Scraping dalam Python

Python, dengan kemudahan pemahaman, berbagai library, dan dukungan untuk parsing HTML, merupakan pilihan populer untuk melakukan web scraping. Simak teknik web scraping dalam artikel berikut ini!

Bunga Dea Laraswati
Bunga Dea Laraswati

Table of Contents

Di era digital saat ini, tentu saja kita memiliki akses untuk melihat berbagi data yang tersebar secara online dengan mudah. Informasi yang terdapat di berbagai situs web, mulai dari harga saham hingga berita terkini, memiliki potensi besar untuk mengubah cara kita membuat keputusan dan menjalankan bisnis. Namun, pertanyaannya adalah bagaimana kita dapat mengakses dan memanfaatkan data ini secara efisien? Di sinilah konsep “Web Scraping” memainkan peran kunci. Dengan menggunakan bahasa pemrograman Python, web scraping memungkinkan kita untuk mengambil data dari situs web dengan cara otomatis, memungkinkan kita untuk menjelajahi dan menganalisis informasi dengan lebih efektif daripada yang pernah kita bayangkan sebelumnya. Mari kita pahami bersama!

Apa Itu Web Scraping?

Web scraping adalah suatu teknik dalam dunia pemrograman yang memungkinkan kita untuk "mengambil" atau "mengikat" informasi dari halaman web, mirip dengan cara kita mengambil catatan dari buku atau mencatat informasi dari situs web ke dalam buku catatan pribadi kita. 

Konsepnya mirip dengan memiliki sekelompok detektif (dalam hal ini, kode komputer) yang mampu mengunjungi berbagai situs web, membaca informasi yang kita minta, dan mengumpulkannya dalam format yang kita inginkan. Dengan kata lain, web scraping adalah alat yang memungkinkan kita untuk mengotomatisasi proses pengambilan data dari web, sehingga kita tidak perlu melakukannya secara manual.

Misalnya, bayangkan kita ingin mengumpulkan informasi tentang harga produk dari berbagai situs e-commerce untuk membandingkannya. Dengan menggunakan web scraping, kita dapat membuat program komputer yang akan menjelajahi situs-situs tersebut, menemukan harga produk, dan mengumpulkannya dalam satu tempat, sehingga kita dapat dengan cepat membandingkan harga-harga tersebut tanpa harus melakukannya secara manual. 

Tujuan Dari Web Scraping

Tujuan dari web scraping adalah untuk mengumpulkan data yang ada di situs web secara otomatis. Prinsip utama dibalik web scraping adalah mengambil informasi yang berguna dari berbagai sumber online untuk berbagai tujuan, termasuk:

1.Analisis Data

Salah satu tujuan utama web scraping adalah untuk mengumpulkan data dari berbagai sumber online dan menganalisanya. Hal ini bisa digunakan untuk memahami tren pasar, perilaku konsumen, atau perbandingan harga produk, dan banyak lagi.

2.Penelitian dan Referensi

Web scraping digunakan untuk mengumpulkan informasi dan data yang bisa digunakan dalam penelitian akademis, artikel, buku, atau referensi lainnya. Peneliti sering menggunakan web scraping untuk mengumpulkan data yang relevan dengan penelitian mereka.

3.Pemantauan Kompetitor

Bisnis sering menggunakan web scraping untuk memantau kegiatan pesaing mereka. Hal ini bisa mencakup memantau harga produk, penawaran spesial, atau perubahan pada situs web pesaing.

4.Automasi Tugas

Web scraping digunakan untuk mengotomatisasi tugas yang membutuhkan pengambilan data dari situs web, seperti mengumpulkan berita terbaru, cuaca, atau hasil olahraga secara otomatis.

5.Peramalan

Data yang diambil dari web scraping dapat digunakan untuk membuat peramalan dan prediksi, seperti prediksi harga saham atau perkiraan permintaan pasar.

Mengapa Harus Python ?

Python adalah bahasa pemrograman yang sangat cocok untuk melakukan web scraping karena memiliki sejumlah keunggulan yang membuatnya menjadi pilihan yang populer:

-Mudah Dipahami

Python adalah bahasa pemrograman yang relatif mudah dipahami, baik oleh pemula maupun pengembang berpengalaman. Syntax Python yang bersifat intuitif dan mirip dengan bahasa Inggris membuatnya menjadi pilihan yang baik bagi mereka yang tidak memiliki latar belakang pemrograman yang kuat.

-Banyak Library Tersedia

Python memiliki beragam library yang sangat berguna untuk web scraping, seperti BeautifulSoup, Requests, dan Scrapy. Library-library ini membuat pengembangan scraper menjadi lebih cepat dan efisien. Anda dapat memanfaatkan library ini untuk mengambil data, memproses HTML, dan menyimpan data dengan mudah.

-Komunitas Besar

Python memiliki komunitas pengguna yang besar dan aktif. Ini berarti Anda memiliki akses ke banyak tutorial, forum, dan dokumentasi yang dapat membantu Anda memecahkan masalah dan mengatasi tantangan yang mungkin muncul selama proses web scraping.

-Cross-Platform

Python dapat dijalankan di berbagai platform, termasuk Windows, macOS, dan Linux, sehingga Anda tidak terbatas pada satu sistem operasi tertentu.

-Dukungan Untuk Parsing HTML

Dalam web scraping, penguraian (parsing) HTML adalah langkah penting. Python memiliki library seperti BeautifulSoup dan lxml yang sangat baik dalam memproses dan mengurai dokumen HTML dengan mudah, sehingga Anda dapat dengan cepat mengekstrak data yang Anda butuhkan.

Tahapan Melakukan Web Scraping

1. Temukan URL yang Ingin Anda Scrape

Langkah pertama dalam web scraping adalah menemukan alamat web atau URL dari situs yang ingin Anda ambil datanya. Misalnya, jika Anda ingin mengambil informasi pergerakan harga saham GOTO dari situs Investing.com, Anda harus menemukan URL halaman produk yang sesuai.

2. Inspeksi Halaman

Selanjutnya, Anda perlu memahami struktur halaman web yang akan Anda "scrape." Ini melibatkan inspeksi elemen-elemen HTML pada halaman tersebut. Anda akan mencari tahu di mana data yang Anda inginkan berada di dalam kode HTML. Anda bisa melihat elemen-elemen seperti tag <div>, <p>, atau <span> yang mengelilingi data tersebut.

3. Temukan Data yang Ingin Di Ekstrak

Setelah Anda tahu di mana data yang ingin Anda ambil berada, langkah selanjutnya adalah menemukan cara untuk mengekstraknya. Anda perlu memahami struktur HTML untuk mendapatkan elemen yang tepat yang berisi data tersebut.

4. Tulis Kode Python

Inilah langkah kunci dalam web scraping. Anda perlu menulis kode Python yang akan mengirim permintaan ke URL halaman web yang telah Anda temukan. Setelah server merespons, kode Anda akan mengambil data dalam bentuk HTML atau XML.

5. Jalankan Kode dan Ekstrak Data

Kode Anda akan memproses halaman HTML atau XML yang diunduh, dan melalui teknik seperti BeautifulSoup, Anda akan mengekstrak data yang Anda butuhkan. Misalnya, jika Anda ingin mengambil harga di periode waktu tertentu, kode Anda akan menemukan elemen HTML yang berisi informasi tersebut dan mengekstraknya.

6. Simpan Data dalam Format yang Diperlukan

Setelah Anda berhasil mengambil data, Anda dapat menyimpannya dalam format yang Anda butuhkan. Ini bisa berupa file CSV, Excel, database, atau format lain sesuai kebutuhan Anda.

Contoh Web Scraping: Scraping Situs Web Flipkart

Prasyarat:

  • Python 3.x dengan perpustakaan Selenium , BeautifulSoup,  pandas yang telah diinstal
  • Google-chrome browser

Langkah 1: Temukan URL yang Ingin Anda Scrape

Untuk contoh ini, kami akan melakukan scraping pada website Flipkart untuk mengekstrak Harga, Nama, dan Peringkat Laptop. URL untuk laman ini adalah https://www.flipkart.com/laptops/~buyback-guarantee-on-laptops-/pr?sid=6bo%2Cb5g&uniqBStoreParam1=val1&wid=11.productCard.PMU_V2 

Langkah 2: Memeriksa Halaman

Data biasanya disisipkan dalam tag. Jadi, kami memeriksa halaman tersebut untuk melihat, di bawah tag mana data yang ingin kami kumpulkan disisipkan. Untuk memeriksa halaman, cukup klik kanan pada elemen dan klik “Inspect”.

Saat Anda mengklik tab “Inspect”, Anda akan melihat “Kotak Inspektur Browser” terbuka seperti gambar dibawah ini.

Langkah 3: Temukan Data yang Ingin Anda Ekstrak

Mari kita ekstrak masing-masing Harga, Nama, dan Rating yang ada di tag “div”.

Langkah 4: Tulis Kodenya

Pertama, mari kita buat file Python. Untuk melakukan ini, buka terminal di Ubuntu dan ketik gedit <nama file Anda> dengan ekstensi .py.

Saya akan memberi nama file saya "web-s". Inilah perintahnya:

Sekarang, mari kita tulis kode kita di file ini. 

Pertama, mari kita impor semua perpustakaan yang diperlukan:

Untuk mengkonfigurasi webdriver agar menggunakan browser Chrome, kita harus menyetel jalur ke chromedriver.

Lihat kode di bawah ini untuk membuka URL:

Sekarang kita telah menulis kode untuk membuka URL, sekarang saatnya mengekstrak data dari situs web. Seperti disebutkan sebelumnya, data yang ingin kita ekstrak disisipkan dalam tag <div>. Jadi, saya akan menemukan tag div dengan nama kelas masing-masing, mengekstrak data dan menyimpan data dalam sebuah variabel. Lihat kode di bawah ini:

Langkah 5: Jalankan Kode dan Ekstrak Datanya

Untuk menjalankan kode, gunakan perintah di bawah ini:

Langkah 6: Simpan Data Dalam Format yang Diperlukan

Setelah mengekstrak data, Anda mungkin ingin menyimpannya dalam format tertentu. Format ini bervariasi tergantung pada kebutuhan Anda. Untuk contoh ini, kami akan menyimpan data yang diekstrak dalam format CSV (Comma Separated Value). Untuk melakukan ini, saya akan menambahkan baris berikut ke kode saya:

Setelah itu saya akan mencoba menjalankan kode saya secara keseluruhan dan mendapatkan data dengan format CSV seperti gambar dibawah ini.

Kesimpulan

Kita telah memahami bersama bahwa web scraping menjadi teknik penting dalam pemrograman yang memungkinkan kita mengambil data dari berbagai situs web secara otomatis, memainkan peran kunci dalam analisis data, penelitian akademis, pemantauan pesaing, otomasi tugas, dan peramalan.

Python, dengan kemudahan pemahaman, berbagai library, dan dukungan untuk parsing HTML, merupakan pilihan populer untuk melakukan web scraping. Prosesnya melibatkan menemukan URL, memahami struktur halaman web, menemukan dan mengekstrak data, menulis kode Python, menjalankannya, dan menyimpan data sesuai kebutuhan.

Contoh pada situs web Flipkart menunjukkan bagaimana teknik ini diterapkan dengan menggunakan perpustakaan seperti Selenium dan BeautifulSoup. Dengan web scraping, Anda dapat mengotomatisasi pengambilan data secara efisien untuk berbagai keperluan. Jika Anda tertarik untuk belajar lebih dalam mengenai web scraping menjadi pilihan yang tepat bagi Anda untuk bergabung bersama Algoritma Data Science School sekarang!

AHMAD FAUZI

Get Free Learning Resources

* indicates required
Insights

Bunga Dea Laraswati

Sr. Writer Algoritma Data Science School