Hoşgeldin Misafir

Yasar7880

İzmir
1 Mar 2024
840 Mesaj
TIM Görevleri
1

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Java ile uğraşan hemen herkesin bir noktada aklına şu fikir gelir:
"Bir web sitesindeki verileri otomatik olarak çekebilir miyim?"
Mesela bir e-ticaret sitesindeki ürün fiyatlarını takip etmek,
bir haber sitesindeki son içerikleri listelemek veya düzenli olarak güncellenen verileri kendi sistemine aktarmak isteyebilirsin.

İşte tam bu noktada web scraping devreye giriyor.
Java tarafında bu iş için yıllardır kullanılan ve hâlâ popülerliğini koruyan kütüphanelerden biri de Jsoup.
Özellikle HTML parse etme konusunda oldukça başarılı ve öğrenmesi de diğer birçok alternatife göre daha kolay.
Sevgili Dostlar Bu yazıda Jsoup'un ne olduğuna, nasıl kullanıldığına ve veri çekme işlemlerinde neden bu kadar tercih edildiğine yakından bakacağız.


c36rn4z.jpg

Web Scraping Nedir?

En basit tanımıyla web scraping, bir internet sayfasındaki verilerin program aracılığıyla okunması ve işlenmesidir.
Normalde bir kullanıcı tarayıcı üzerinden sayfayı açar ve bilgileri görür. Web scraping işleminde ise bunu bir yazılım yapar.



Örneğin:
  • Haber başlıklarını çekmek
  • Döviz kurlarını almak
  • Ürün fiyatlarını takip etmek
  • Blog içeriklerini listelemek
  • İlan sitelerindeki verileri toplamak

gibi işlemler web scraping kapsamına girer.



Neden Jsoup Tercih Ediliyor?

Java ekosisteminde HTML işlemek için farklı araçlar bulunsa da Jsoup'un öne çıkmasının birkaç önemli nedeni var.

Özellik
Jsoup
Öğrenme kolaylığıÇok yüksek
HTML ayrıştırmaBaşarılı
CSS seçicileri desteğiVar
Performansİyi
KurulumBasit
Açık kaynak
Evet

Özellikle CSS Selector desteği sayesinde HTML elemanlarını bulmak oldukça kolay hale geliyor.

Projeye Jsoup Nasıl Eklenir?

Maven kullanan bir projede dependency eklemek yeterlidir.

JavaScript:
<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.18.3</version>
</dependency>



Gradle kullananlar ise şu satırı ekleyebilir:

implementation 'org.jsoup:jsoup:1.18.3'


Kurulum kısmı genellikle birkaç dakikadan fazla sürmez.

Bir Web Sayfasına Bağlanmak

İlk adım sayfayı okumaktır.
Örneğin:


JavaScript:
Document document = Jsoup.connect(
    "https://example.com"
).get();

Bu kod belirtilen URL'ye gider ve sayfanın HTML içeriğini alır. Artık elimizde işleyebileceğimiz bir Document nesnesi vardır.

Sayfa Başlığını Çekmek


Bağlantı kurduktan sonra basit bir örnek yapalım.

JavaScript:
System.out.println(document.title());

Bu satır sayfanın <title> etiketindeki değeri ekrana yazdırır.
Küçük gibi görünse de aslında scraping işleminin ilk adımı budur.


HTML Elemanlarını Seçmek

Gerçek hayatta genellikle başlık, fiyat veya açıklama gibi belirli alanlara ihtiyaç duyarız.
Örneğin tüm haber başlıklarını çekmek istediğimizi düşünelim.


JavaScript:
Elements headlines = document.select("h2");

Ardından:

JavaScript:
for (Element headline : headlines) {
    System.out.println(headline.text());
}

Bu kadar.
Sayfadaki tüm H2 etiketleri ekrana basılacaktır.
İlk kez kullanan birçok geliştirici bu noktada Jsoup'un ne kadar sade olduğunu fark ediyor.



En Çok Kullanılan CSS Seçicileri

Web scraping yaparken aşağıdaki seçiciler sık kullanılır.



Seçici
Açıklama
divTüm div etiketleri
.urunBelirli class
#fiyatBelirli id
aLinkler
imgGörseller
table tr
Tablo satırları

Örnek:

JavaScript:
document.select(".product-price");

Bu ifade "product-price" sınıfına sahip tüm elemanları getirir.

Linkleri Çekmek

Bir sayfadaki bağlantıları almak da oldukça yaygın bir işlemdir.

JavaScript:
Elements links = document.select("a[href]");

Sonrasında:

JavaScript:
for (Element link : links) {
    System.out.println(link.attr("href"));
}

Bu yöntem özellikle crawler geliştirenlerin sık kullandığı bir yaklaşımdır.


Jsoup ile Veri Çekmenin Avantajları

Birçok projede Selenium yerine doğrudan Jsoup tercih edilmesinin sebepleri vardır.


Kriter
Jsoup
Selenium
HızYüksekDaha yavaş
Tarayıcı gereksinimiYokVar
KurulumKolayDaha karmaşık
JavaScript desteğiYokVar
Kaynak tüketimiDüşük
Yüksek


Eğer hedef sayfa verileri doğrudan HTML içinde sunuyorsa Jsoup çoğu zaman yeterlidir.


Dikkat Edilmesi Gereken Noktalar

Web scraping yaparken her site aynı şekilde çalışmaz.


Bazı siteler:

  • Bot koruması kullanır
  • IP sınırlaması uygular
  • CAPTCHA gösterir
  • JavaScript ile içerik yükler

Böyle durumlarda yalnızca Jsoup yeterli olmayabilir.
Özellikle React, Vue veya Angular kullanan modern uygulamalarda veriler sonradan yüklendiği için Selenium veya Playwright gibi çözümler gerekebilir.


Hangi Durumlarda Jsoup Yeterlidir?


Aşağıdaki senaryolarda Jsoup oldukça başarılıdır:

✅ Haber siteleri
✅ Bloglar
✅ Statik kurumsal siteler
✅ Ürün listeleme sayfaları
✅ Basit veri toplama projeleri

Ancak içerik tamamen JavaScript ile oluşturuluyorsa farklı araçlara yönelmek gerekebilir.

Sevgili kodlamaya gönülvermiş THS Ailesi ;

Web scraping denildiğinde Java dünyasında akla gelen ilk kütüphanelerden biri hâlâ Jsoup.
Bunun nedeni yalnızca hızlı olması değil, aynı zamanda öğrenme sürecini gereksiz yere karmaşıklaştırmaması.
Birkaç satır kodla sayfa içeriğini okuyabilmek ve istediğin veriyi çekebilmek özellikle yeni başlayanlar için büyük avantaj sağlıyor.


Eğer Java ile veri toplama, fiyat takibi, içerik analizi veya otomasyon projeleri geliştirmeyi düşünüyorsan,
Jsoup öğrenmek harcanan zamana fazlasıyla değen araçlardan biri olacaktır.
Bir dahaki makalemizde görüşene dek mavi ekransız bugsuz ve sorunsuz sistemlerle çalışmanız dileği ile hoşça kalın


9jul8m7.jpeg
 
Son düzenleme: