Desain laporan pada java dengan ireport & jcreator
Best Practice Web Crawler Dengan Jsoup
1. Best Practice Crawling Website
Berita Dengan Java + Jsoup
Bahasa Indonesia
2017
Agung Sulistyanto
7/8/2017
Best Practice Crawling Website Berita Dengan
Java + Jsoup by Agung Sulistyanto is licensed
under a Creative Commons Attribution-
NonCommercial-ShareAlike 4.0 International
License.
2. ikatlah ilmu dengan menuliskannya1
1
1.1 Pendahuluan
Pada tulisan ini, Saya akan berbagi tutorial sederhana untuk melakukan crawling
website berita menggunakan Java dan library Jsoup. Sebagai contoh, crawling
ditargetkan pada situs berita Antara News pada halaman rss
www.antaranews.com/rss/news.xml. Dibahas juga penggunaan Job Scheduler untuk
melakukan otomatisasi pada program saat melakukan crawling. Sehingga pada
tulisan ini Saya membagi pembahasan teknis menjadi 3 tahapan utama,
diantaranya:
1. Crawling Rss Berita
2. Crawling Konten Berita
3. Membuat Job Scheduler
Web Crawler
Web Crawler sering juga disebut web spider adalah bot internet yang secara
sistematis menjelajahi internet dengan tujuan mengambil data dalam suatu situs.
Secara sederhana web crawler dimulai dengan mengunjungi sebuah laman web,
mencari url yang relevan hingga mencari konten yang dibutuhkan. Dalam tulisan ini
crawler dimulai dari url rss situs berita, setelah itu mengakses url berita, terakhir
mengambil konten berita. Ini merupakan crawling yang sederhana dan cepat.
Namun cara ini memiliki kelemahan karena kita tidak dapat crawling konten berita
yang telah lalu. Karena sifat rss yang selalu di perbarui setiap saat.
Cara kedua dapat dilakukan dengan mengunjungi halaman utama situs berita,
mencari link yang revelan, mengakses link tersebut satu persatu. Dilakukan terus
berulang - ulang sampai semua link berita pada situs tersebut dijelajahi. Cara ini
dapat digunakan untuk mendapatkan konten berita yang telah lalu. Namun memiliki
beberapa kelemahan dan usaha yang besar, diantaranya lama waktu yang
dibutuhkan untuk melakukan crawling. Dilain hal banyak data yang perlu dipilah
untuk mendapatkan data yang relevan. Sehingga kita akan membuat program yang
cukup kompleks pada cara ini.
Jsoup
Jsoup adalah library Java yang menyediakan API untuk mengekstraks dan
memanipulasi data menggunakan DOM, CSS dan Jquery. Jsoup
mengimplementasikan WHATWG HTML5, dan memparsing HTML ke DOM yang
sama seperti browser modern. Jsoup library dapat didownload pada halaman
https://jsoup.org/download.
Rss
Rss singkatan dari Really Simple Syndication, digunakan untuk mendistribusikan
konten web terbaru. RSS digunakan pada situs yang sering diperbarui, salah satu
contoh yang sering kita temukan adalah website berita. Berikut contoh struktur rss
sederhana:
3. ikatlah ilmu dengan menuliskannya1
2
Berikut contoh rss pada laman http://www.antaranews.com/rss/news.xml
4. ikatlah ilmu dengan menuliskannya1
3
Pada baris pertama berisi deklarasi xml, versi xml (1.0) dan pengkodean karakter
(UTF-8). Baris kedua deklarasi rss, pada contoh kasus diatas menggunakan versi
2.0. Baris berikutnya <channel>, digunakan untuk menggambarkan data rss feed.
Baris berikutnya <item>, mendefinisikan sebuah artikel pada rss feed. Dengan kata
lain <item> berisi berita dengan detil <title> judul berita, <link> halaman asli
berita, <pubDate> waktu berita di publikasi, <description> deskripsi berita dan
<guid> sama dengan <link>.
1.2 Crawling Rss Berita dengan Jsoup
Source:
Line:15 contoh sederhana mengakses halaman rss dengan Jsoup. Menggunakan
parameter url halaman.
Output:
5. ikatlah ilmu dengan menuliskannya1
4
Source:
Line:22 select digunakan untuk megambil tag <item>.
Output:
6. ikatlah ilmu dengan menuliskannya1
5
1.4 Crawling Konten Berita
Crawling pada rss cukup mudah dilakukan karena rss memiliki struktur yang standar.
Sehingga dapat dipastikan rss pada setiap website berita relatif sama tergantung
versi rss yang digunakan. Crawling konten berita lebih dinamis karena pada 1
halaman web kita banyak sekali mendapatkan data diluar konten berita tersebut.
Sebagai contoh berikut halaman berita Antara News:
Sehingga sebelum melakukan crawling kita perlu menganalisa source halaman
tersebut untuk mendapatkan konten berita. Dapat dilakukan dengan melihat source
halaman web tersebut.
7. ikatlah ilmu dengan menuliskannya1
6
Kita perhatikan bahwa konten berita berada di dalam tag <div> dengan
id=”conten_news”. Sekarang mari kita lihat bagaimana Jsoup melakukannya.
Source:
Line:38 select digunakan untuk megambil tag <div> dengan id content_news.
8. ikatlah ilmu dengan menuliskannya1
7
Output:
Sampai disini kita sudah dapat melakukan crawling pada rss dan konten berita.
1.5 Job Scheduler
Job scheduler atau batch adalah penjadwalan eksekusi program. Pada kasus ini
batch akan dijalankan setiap 1 jam. Hal ini dengan anggapan setiap 1 jam akan
terdapat berita baru. Sehingga crawling akan dijalankan setiap 1 jam. Pada tulisan
ini saya menggunakan library Quartz, dapat diunduh disini http://www.quartz-
scheduler.org/downloads/. Untuk memudahkan dalam membuat cron expression
dapat menggunakan http://www.cronmaker.com/.
Source:
9. ikatlah ilmu dengan menuliskannya1
8
Source:
Line:15 pada program ini digunakan cron expression untuk eksekusi program setiap
1 menit.
Output:
Terima kasih, semoga bermanfaat.
10. ikatlah ilmu dengan menuliskannya1
51
Tentang Penulis
Agung Sulistyanto adalah mahasiswa Fakultas Teknologi Informasi
Universitas BUDI LUHUR. Minat saya pada pemrograman
khususnya Java. Untuk tulisan yang lain dapat di akses melalui
agungsulistyan.wordpress.com atau slideshare.net/agungsulistyan.
Saya dapat dihubungi melaui email agung.sulistyan@gmail.com.