SlideShare a Scribd company logo
1 of 10
Download to read offline
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.
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:
ikatlah ilmu dengan menuliskannya1
2
Berikut contoh rss pada laman http://www.antaranews.com/rss/news.xml
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:
ikatlah ilmu dengan menuliskannya1
4
Source:
Line:22 select digunakan untuk megambil tag <item>.
Output:
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.
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.
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:
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.
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.

More Related Content

More from Agung Sulistyanto

Materi Pelatihan_Steganografi Metode LSB
Materi Pelatihan_Steganografi Metode LSBMateri Pelatihan_Steganografi Metode LSB
Materi Pelatihan_Steganografi Metode LSBAgung Sulistyanto
 
Membuat grafik sederhana pada java dengan JFreeChart
Membuat grafik sederhana pada java dengan JFreeChartMembuat grafik sederhana pada java dengan JFreeChart
Membuat grafik sederhana pada java dengan JFreeChartAgung Sulistyanto
 
Mempercantik tampilan frame dengan JTattoo
Mempercantik tampilan frame dengan JTattooMempercantik tampilan frame dengan JTattoo
Mempercantik tampilan frame dengan JTattooAgung Sulistyanto
 
Menjaga Validasi tanggal dengan Jcalendar pada java
Menjaga Validasi tanggal dengan Jcalendar pada javaMenjaga Validasi tanggal dengan Jcalendar pada java
Menjaga Validasi tanggal dengan Jcalendar pada javaAgung Sulistyanto
 
Aplikasi bengkel sederhana berbasis desktop dengan java
Aplikasi bengkel sederhana berbasis desktop dengan javaAplikasi bengkel sederhana berbasis desktop dengan java
Aplikasi bengkel sederhana berbasis desktop dengan javaAgung Sulistyanto
 
Aplikasi sms sederhana dengan gammu dan java
Aplikasi sms sederhana dengan gammu dan javaAplikasi sms sederhana dengan gammu dan java
Aplikasi sms sederhana dengan gammu dan javaAgung Sulistyanto
 
Desain laporan pada java dengan ireport & jcreator
Desain laporan pada java dengan ireport & jcreatorDesain laporan pada java dengan ireport & jcreator
Desain laporan pada java dengan ireport & jcreatorAgung Sulistyanto
 

More from Agung Sulistyanto (8)

Materi Pelatihan_Steganografi Metode LSB
Materi Pelatihan_Steganografi Metode LSBMateri Pelatihan_Steganografi Metode LSB
Materi Pelatihan_Steganografi Metode LSB
 
Panduan moodle
Panduan moodlePanduan moodle
Panduan moodle
 
Membuat grafik sederhana pada java dengan JFreeChart
Membuat grafik sederhana pada java dengan JFreeChartMembuat grafik sederhana pada java dengan JFreeChart
Membuat grafik sederhana pada java dengan JFreeChart
 
Mempercantik tampilan frame dengan JTattoo
Mempercantik tampilan frame dengan JTattooMempercantik tampilan frame dengan JTattoo
Mempercantik tampilan frame dengan JTattoo
 
Menjaga Validasi tanggal dengan Jcalendar pada java
Menjaga Validasi tanggal dengan Jcalendar pada javaMenjaga Validasi tanggal dengan Jcalendar pada java
Menjaga Validasi tanggal dengan Jcalendar pada java
 
Aplikasi bengkel sederhana berbasis desktop dengan java
Aplikasi bengkel sederhana berbasis desktop dengan javaAplikasi bengkel sederhana berbasis desktop dengan java
Aplikasi bengkel sederhana berbasis desktop dengan java
 
Aplikasi sms sederhana dengan gammu dan java
Aplikasi sms sederhana dengan gammu dan javaAplikasi sms sederhana dengan gammu dan java
Aplikasi sms sederhana dengan gammu dan java
 
Desain laporan pada java dengan ireport & jcreator
Desain laporan pada java dengan ireport & jcreatorDesain laporan pada java dengan ireport & jcreator
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.