Merhaba arkadaşlar bu yazımda JSOUP kütüphanesini kullanarak bir siteden veri çekme işinin nasıl yapılacağını yazmak istiyorum. İlk olarak Site den jarı indiriyoruz. Sonra projeye atıp build path diyoruz böylece uygulamamızda kullanabilir hale gelmiş oluyor.  Bunun dışında eğer projeniz bir maven projesi ise pom.xml de yer alan bağımlılıklara aşağıdaki bölümü ekleyelim.

Bu kütüphanenin problemsiz çalışabilmesi için gerekenler ise java 1.5 ve üstü bir jdk gereklidir. Scala, Android, OSGi ve  Google App Engine ortamlarında problemsiz bir şekilde çalışmaktadır.Bu yazıda biz örnek olması açısından url=”http://www.cars-data.com/en/car-brands-cars-logos.html” adresinde yer alan araba isimlerini çekmek istiyoruz.

Burada 2 tane spinner tanımladık ve marka seçmeden modelin seçmesini sağlayacağız. Bunu biz şu şekilde yapmayı planladık. İlk olarak markayı doldurduktan sonra markanın onclicklistenner metodu çalışmadan modelin enable ayarını false yapıyoruz. Sonrasında ise bir asyntask yazarak ( bazen hata veriyor androidin kendi hatası) yada onclicklistenner metodunda asyntask da yapılacak işlemleri yapabiliriz.

Burada bu metodu kullanabilmek için bir tane url istiyoruz. Url in değeri bizim örneğimiz için http://www.cars-data.com/en/car-brands-cars-logos.html

Uygulamaya ait olan işlemler arka tarafta devam ederke,n yapılacak olan işlemler esnasında son kullanıcıya “yükleniyor…” tarzında bir bar kullandık.

JSoup kütüphanesine ait document Elementleri kullanmaya dikkat etmemiz gereklidir. Yoksa hata verir ve sizde nerede hata yapıyorum diyebilirsiniz. Java’nın en büyük sıkıntısı budur.

Burada bizim bu çektiğimiz verilerin hangi web tarayıcıları için veri çekeceğini ve belirttiğimiz url adresine bağlandığını belirtiyoruz. Bu kısımın değiştiğine şu ana kadar rastlamadım. Sizinde bu şekilde kullanmanızı tavsiye ederim.( Buradaki gibi dinamik olarak bir tane url parametresi kullanıyorsak ancak sabit bir url veriyorsak burada yer alan url değerini biz hangi siteye bağlanıyorsak o sitenin linkini vermemiz gerekir.

Bu örnekte ise siteye bağlandığımız sitede document(sitenin tamamının html halini)’in içinde yer alan divlerden classı car olanı içinde bulunan tüm h1 leri getir ve bunları listele demek istiyoruz. En önemli kısım burasıdır. Bulmamızı istediğimiz elementi(div, table vs) onu bulup onun nelerini kullanacağımızı bulduktan sonraki kısım tamamen bizim hayal gücümüze ve programlama yeteneğimize kalmıştır.

Bu kısımda ise çektiğimiz verileri uygun formata getirip devamında spinner aracılığı ile gösterme işini yapıyoruz.

Kodların tamamı aşağıda mevcuttur.