Rangkuman Webinar Mengambil Data Dengan Python


 
https://radnet-digital.id/
Webinar Mengambil Data Dengan Python

Web Scraping dengan Selenium

Web scraping adalah metode otomatis untuk mengumpulkan data dari situs web menggunakan program atau bot. Teknik ini memungkinkan pengguna mengambil, mengorganisir, dan menganalisis informasi dari berbagai sumber tanpa harus melakukannya secara manual.

Proses web scraping biasanya terdiri dari beberapa tahap, yaitu:

  1. Mengirim Permintaan ke Server – Program scraper mengakses situs web dengan mengirimkan permintaan HTTP menggunakan pustaka seperti requests di Python.

  2. Mengambil dan Memproses Data – Data yang diperoleh dalam bentuk HTML kemudian diolah menggunakan parser seperti BeautifulSoup atau lxml.

  3. Mengekstrak Informasi – Scraper mencari elemen tertentu di halaman web, misalnya teks, gambar, atau tautan, dengan menggunakan selector CSS atau XPath.

  4. Menyimpan Data – Informasi yang telah diekstrak dapat disimpan dalam berbagai format, seperti CSV, JSON, atau dimasukkan ke dalam database untuk analisis lebih lanjut.

Meskipun teknik ini sangat berguna untuk mengumpulkan informasi, ada aspek legal dan etika yang harus diperhatikan. Beberapa situs memiliki aturan dalam robots.txt yang membatasi atau melarang pengambilan data secara otomatis. Oleh karena itu, penting untuk mengikuti kebijakan situs web dan memastikan scraper tidak membebani server mereka.

Struktur Halaman Web


Yang Perlu Diperhatikan

1. URL

  • Pastikan URL yang akan di-scrape adalah halaman yang memuat data yang dibutuhkan.

  • Periksa apakah situs menggunakan parameter query string di URL untuk navigasi (misalnya, ?page=2).

  • Jika data dimuat secara dinamis menggunakan JavaScript, mungkin perlu headless browser seperti Selenium.

2. Struktur Halaman dan Data yang Akan Di-scrape

  • Gunakan Inspect Element atau View Page Source di browser untuk memahami struktur HTML.

  • Identifikasi elemen seperti div, table, span, atau class dan id yang berisi data penting.

  • Gunakan alat seperti BeautifulSoup atau XPath untuk mengekstrak data.

3. Opsi dan Interaksi Halaman Web

  • Apakah ada filter, dropdown, atau tombol load more yang harus diklik?

  • Jika situs menggunakan JavaScript untuk memuat data tambahan, gunakan Selenium atau Scrapy dengan Splash untuk merender halaman.

  • Periksa apakah ada AJAX requests yang bisa langsung diakses untuk mendapatkan data JSON.

4. Jumlah Data dalam Satu Halaman dan Jumlah Halaman

  • Apakah seluruh data ditampilkan di satu halaman atau tersebar dalam pagination?

  • Jika ada pagination, periksa bagaimana halaman berikutnya dimuat (melalui perubahan URL atau AJAX).

  • Untuk jumlah data yang besar, pertimbangkan teknik asynchronous scraping agar lebih efisien.

5. Fitur Keamanan Web

  • robots.txt – Periksa apakah situs mengizinkan scraping atau tidak.

  • CAPTCHA – Jika ada CAPTCHA, scraping otomatis bisa terhambat dan mungkin perlu bypass menggunakan OCR atau layanan CAPTCHA solver.

  • Rate Limiting – Beberapa situs membatasi jumlah permintaan dalam waktu tertentu, jadi gunakan time delay atau proxy rotation.

  • User-Agent & Headers – Tambahkan User-Agent yang sesuai untuk menghindari pemblokiran.


Menggunakan Requests

Import requests

x = requests.get ('https://lpse.polri.go.id/eproc4/lelang')

print (x.text)

Hasilnya akan sama dengan "Page Source"

Menggunakan BeautifukSoup

pip install beautifulsoup4

import requests

from bs4 import BeautifulSoup

x = requests.get ('https://lpse.polri.go.id/eproc4/lelang')

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

print (soup.prettify())
...
select = soup.find ("select")

selects = soup.find_all ("select")

kategoriId = soup.find ("select", {"name": "kategoriId"})

options = kategoriId.find_all ("options")

for option in options:
    print (option.get ("value"))
    print (option.text)

Menggunakan selenium

pip install selenium

from selenium import webdriver

DRIVER_PATH='C:\chromedriver.exe'

driver = webdriver.Chrome()

driver.get ('https://lpse/polri.go.id/eproc4/lelang')

time.sleep (5)


Komentar

Postingan populer dari blog ini

Rangkuman ToT: Pembuatan Platform Digital dengan Microsite

Rangkuman Webinar The Journey to Your Successful Business

Webinar Healthcare Data Privacy Web Series IV