Web Crawling dan Web Scraping
Web Crawling
Definisi:
Web crawling adalah proses otomatis untuk menjelajahi halaman-halaman web dari satu link ke link lainnya, seperti cara kerja Googlebot saat mengindeks website.
Tujuan utama:
Mengumpulkan dan memetakan struktur website atau mengindeks konten web untuk keperluan pencarian atau analisis skala besar.
Contoh:
Mesin pencari seperti Google, Bing, atau DuckDuckGo menggunakan crawler untuk menjelajahi dan mengindeks semua halaman yang bisa mereka temukan di internet.
Web Scraping
Definisi:
Web scraping adalah proses mengambil data spesifik dari halaman web, biasanya dengan mem-parsing kontennya seperti HTML atau JSON.
Tujuan utama:
Mengambil informasi tertentu seperti harga produk, review, artikel berita, dll.
Contoh:
- Mengambil daftar harga dari situs e-commerce
- Mengambil informasi profil dari LinkedIn (dengan izin atau via API resmi)
- Mengambil data berita terbaru dari situs berita
Pada saat request data, server dapat memberikan hasil berupa data dalam berbagai format, misalnya : html, pdf, xml, json atau format yang lainnya.
Jika data yang dihasilkan dalam format xml atau json, maka proses crawling data akan relatif lebih mudah. Namun bagaimana jika data yang dihasilkan berupa format html.
Contoh jika kita mengakses data Kurs Pajak melalui laman : https://fiskal.kemenkeu.go.id/informasi-publik/kurs-pajak .
Jika dilihat source code tampilan tersebut berupa script html menggunakan tag <table></table>
PHP Simple HTML DOM Parser
PHP Simple HTML DOM Parser adalah sebuah parser dokumen HTML yang cepat, sederhana, dan andal untuk PHP. Perangkat lunak ini dikembangkan oleh S.C. Chen, berdasarkan HTML Parser untuk PHP 4 yang dibuat oleh Jose Solorzano. PHP Simple HTML DOM Parser mampu memproses berbagai dokumen HTML, termasuk dokumen-dokumen yang dianggap tidak valid menurut spesifikasi HTML. Perangkat lunak ini bersifat bebas dan didistribusikan di bawah lisensi MIT.
Untuk membuat kumpulan data dari file html seperti contoh tersebut, diperlukan langkah sebagai berikut:
- Install PHP Server untuk menjalankan script PHP (Appserve, XAMPP, dll)
- Download PHP Simple HTML DOM Parser (https://sourceforge.net/projects/simplehtmldom/)
- Pelajari website target, terutama struktur HTML-nya, misalnya dengan contoh website Kurs Pajak tersebut, didapat informasi sebagai berikut
- Kurs pajak berlaku dalam kurun waktu 1 minggu-an
- Kurs pajak terbit pada hari rabu
Dari hasil analisis tersebut, maka diperlukan seluruh tanggal yang bertepatan pada hari Rabu, hal ini dapat mudah kita dapatkan menggunakan spreadsheet (excel).
- Jalankan script PHP sebagai berikut :
<iframe src="https://carbon.now.sh/embed?bg=rgba%28171%2C+184%2C+195%2C+1%29&t=seti&wt=none&l=auto&width=680&ds=true&dsyoff=20px&dsblur=68px&wc=true&wa=true&pv=56px&ph=56px&ln=false&fl=1&fm=Hack&fs=14px&lh=133%25&si=false&es=2x&wm=false&code=%253C%253Fphp%250Ainclude%28%27simple_html_dom.php%27%29%253B%250Aset_time_limit%2860%29%253B%250A%2524tanggal%253Darray%28%25222022-11-30%2522%252C%25222022-12-07%2522%252C%25222022-12-14%2522%252C%25222022-12-21%2522%252C%25222022-12-28%2522%29%253B%250A%250A%2524j%253Dcount%28%2524tanggal%29%253B%250A%250Afor%28%2524i%253D0%253B%2524i%253C%2524j%253B%2524i%252B%252B%29%257B%250A%2524html%2520%253D%2520file_get_html%28%250A%2522https%253A%252F%252Ffiskal.kemenkeu.go.id%252Finformasi-publik%252Fkurs-pajak%253Fdate%253D%2524tanggal%255B%2524i%255D%2522%29%253B%250Aforeach%28%2524html-%253Efind%2520%28%27strong%27%29%2520as%2520%2524element%29%250A%2509%2509echo%28%2520%2524element%29%253B%2520%2520%2520%250Aforeach%28%2524html-%253Efind%2520%28%27p.text-muted%27%29%2520as%2520%2524element%29%250A%2509%2509echo%28%2520%2524element%29%253B%250Aforeach%28%2524html-%253Efind%2520%28%27table%27%29%2520as%2520%2524element%29%250A%2509%2509foreach%28%2524element%2520-%253Efind%28%27img%27%29%2520as%2520%2524item%29%2520%257B%2520%2524item-%253Eoutertext%2520%253D%2520%27%27%253B%2520%257D%250A%2509%2509%2524element-%253Esave%28%29%253B%250A%2509%2509echo%28%2520%2524element%29%2520.%2520%27%253Cbr%253E%27%253B%250A%257D%250A%253F%253E" style="width: 833px; height: 558px; border:0; transform: scale(1); overflow:hidden;" sandbox="allow-scripts allow-same-origin"> </iframe>
<?php include ('simple_html_dom.php'); set_time_limit(60); $tanggal = array( "2022-11-30", "2022-12-07", "2022-12-14", "2022-12-21", "2022-12-28" ); $j = count($tanggal); for ($i = 0;$i < $j;$i++) { $html = file_get_html("https://fiskal.kemenkeu.go.id/informasi-publik/kurs-pajak?date=$tanggal[$i]"); foreach ($html->find('strong') as $element) echo ($element); foreach ($html->find('p.text-muted') as $element) echo ($element); foreach ($html->find('table') as $element) foreach ($element->find('img') as $item) { $item->outertext = ''; } $element->save(); echo ($element) . '<br>'; } ?>
Tampilan setelah scrip dijalankan:
Hasil crawling tersebut bisa diolah mengunakan spreadsehet (excel), hasilnya bisa di download di Database Kurs Pajak 2010 sd 2024.xlsx
Semoga Bermanfaat 😁
0 comments:
Post a Comment