JSoup – search html element by value text


JSoup merupakan salah satu java library yang membantu kita untuk melakukan ekstraksi serta memanipulasi file HTML, library ini juga bisa kita pake ketika membuat aplikasi android yang mana membutuhkan untuk ekstraksi hasil scrap HTML dari sebuah URL / Website ataupun dari sebuah file HTML.

Konsep pemakaiannya hampir sama ketika kita bermain-main dengan JQuery (JavaScript). Misalkan kita ingin mendapatkan atribut, value atau elemen lainnya yang ada di halaman HTML yang ditentukan berdasarkan ID elemen, Class elemen atau atribut sejenisnya. Langsung ke contoh awal penggunaan JSoup aja ya biar lebih paham.

<div id="area1">
	<table id="contoh1" class="tb">
		<tr>
			<td>Nama Lengkap</td>
			<td>:</td>
			<td>Rendra Kurniawan</td>
		</tr>
		<tr>
			<td>Website</td>
			<td>:</td>
			<td>www.kreasigaruda.com</td>
		</tr>
	</table>
</div>

Dari potongan kode HTML diatas, misalkan kita ingin mengambil table secara keseluruhan untuk kemudian ditampilkan atau dilakukan manipulasi lainnya di aplikasi android atau aplikasi java kita. Bisa dilakukan dengan kode berikut :

/**
 * Kita ingin dapat elemen <table>
 *
 * Document doc : variabel untuk menyimpan source HTML
 */ 

// Disini kita mainkan
Elements ambilTable = doc.select("#area1");

// Output dari ambilTable adalah seluruh script <table> beserta isinya dari HTML diatas

Nah, oke contoh pertama cukup mudah bukan? Sama halnya ketika kita ingin mendapatkan value / text dari sebuah DIV, SPAN atau elemen HTML lainnya. Cukup kita tau ID elemen atau Class atau penanda lainnya yang bisa kita pake untuk identifikasi elemen mana yang mau kita obrak-abrik.

TAPI, bagaiman jika kalian tidak tahu atau TIDAK ADA PENANDA khusus pada sebuah elemen yang mau kita ambil value / text-nya? Contohnya adalah, BAGAIMANA caranya jika kita ingin mendapatkan text Rendra Kurniawan dari potongan kode HTML diatas??? Jangan risau jangan gundah, caranya mudah kok silahkan pahami potongan kode dibawah ini :

Element nama = doc.select("td:contains(Rendra Kurniawan)").first();
System.out.println(nama.text());

Kuncinya adalah di kode td:contains yang mana kode tersebut berarti “cari dan dapatkan elemen TD yang di dalamnya mengandung kata Rendra Kurniawan”. Nah, begitulah adanya mudah ya? Alhamdulillah, semoga bermanfaat.

Mari Berdiskusi Bersama

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s