jsoup - Hızlı Kılavuz

jsoup, HTML tabanlı içerikle çalışmak için Java tabanlı bir kitaplıktır. En iyi DOM, CSS ve jquery benzeri yöntemleri kullanarak verileri çıkarmak ve işlemek için çok uygun bir API sağlar. WHATWG HTML5 belirtimini uygular ve HTML'yi modern tarayıcıların yaptığı gibi aynı DOM'a ayrıştırır.

jsoup libary, WHATWG HTML5 özelliğini uygular ve bir HTML içeriğini modern tarayıcılara göre aynı DOM'a ayrıştırır.

jsonp kitaplığı aşağıdaki işlevleri sağlar.

  • Multiple Read Support - URL, dosya veya dize kullanarak HTML'yi okur ve ayrıştırır.

  • CSS Selectors - DOM geçişini veya CSS seçicilerini kullanarak verileri bulabilir ve çıkarabilir.

  • DOM Manipulation - HTML öğelerini, niteliklerini ve metni işleyebilir.

  • Prevent XSS attacks - XSS saldırılarını önlemek için, kullanıcı tarafından gönderilen içeriği belirli bir güvenli beyaz listeye göre temizleyebilir.

  • Tidy - Düzenli HTML çıktılar.

  • Handles invalid data - jsoup kapatılmamış etiketleri, örtük etiketleri işleyebilir ve belge yapısını güvenilir bir şekilde oluşturabilir.

Yerel Ortam Kurulumu

JUnit, Java için bir çerçevedir, bu nedenle ilk gereksinim, makinenizde JDK'nın kurulu olmasıdır.

Sistem gereksinimleri

JDK 1.5 veya üstü.
Hafıza Minimum gereklilik yok.
Disk alanı Minimum gereklilik yok.
İşletim sistemi Minimum gereklilik yok.

Adım 1: Makinenizde Java Kurulumunu Doğrulayın

Öncelikle konsolu açın ve üzerinde çalıştığınız işletim sistemine göre bir java komutu yürütün.

işletim sistemi Görev Komut
pencereler Komut Konsolunu Aç c: \> java sürümü
Linux Komut Terminalini Aç $ java sürümü
Mac Açık Terminal machine: <joseph $ java -version

Tüm işletim sistemleri için çıktıyı doğrulayalım -

işletim sistemi Çıktı
pencereler

java sürümü "1.6.0_21"

Java (TM) SE Çalışma Zamanı Ortamı (derleme 1.6.0_21-b07)

Java HotSpot (TM) Client VM (derleme 17.0-b17, karma mod, paylaşım)

Linux

java sürümü "1.6.0_21"

Java (TM) SE Çalışma Zamanı Ortamı (derleme 1.6.0_21-b07)

Java HotSpot (TM) Client VM (derleme 17.0-b17, karma mod, paylaşım)

Mac

java sürümü "1.6.0_21"

Java (TM) SE Çalışma Zamanı Ortamı (derleme 1.6.0_21-b07)

Java HotSpot (TM) 64-Bit Sunucu VM (derleme 17.0-b17, karma mod, paylaşım)

Sisteminizde Java yüklü değilse, aşağıdaki bağlantıdan Java Yazılım Geliştirme Kitini (SDK) indirin https://www.oracle.com. Bu öğretici için Java 1.6.0_21 sürümünü kurulu sürüm olarak kabul ediyoruz.

Adım 2: JAVA Ortamını Ayarlayın

Yı kur JAVA_HOMEJava'nın makinenizde kurulu olduğu temel dizin konumunu gösteren ortam değişkeni. Örneğin.

işletim sistemi Çıktı
pencereler JAVA_HOME ortam değişkenini C: \ Program Files \ Java \ jdk1.6.0_21 olarak ayarlayın
Linux dışa aktar JAVA_HOME = / usr / local / java-current
Mac dışa aktar JAVA_HOME = / Kitaplık / Java / Ana Sayfa

Java derleyici konumunu Sistem Yoluna ekleyin.

işletim sistemi Çıktı
pencereler Dizeyi ekleyin C:\Program Files\Java\jdk1.6.0_21\bin sistem değişkeninin sonunda, Path.
Linux dışa aktar PATH = $ PATH: $ JAVA_HOME / bin /
Mac gerekli değil

Komutu kullanarak Java kurulumunu doğrulayın java -version yukarıda açıklandığı gibi.

3. Adım: jsoup Arşivini indirin

Jsoup jar dosyasının en son sürümünü Maven Deposundan indirin . Bu öğreticiyi yazarken, jsoup-1.8.3.jar dosyasını indirdik ve C: \> jsoup klasörüne kopyaladık.

işletim sistemi Arşiv adı
pencereler jsoup-1.8.3.jar
Linux jsoup-1.8.3.jar
Mac jsoup-1.8.3.jar

Adım 4: jsoup Ortamını ayarlayın

Yı kur JSOUP_HOMEjsoup jar'ın makinenizde depolandığı temel dizin konumunu gösteren ortam değişkeni. JSOUP klasöründe jsoup-1.8.3.jar depoladığımızı varsayalım.

Sr.No İşletim Sistemi ve Açıklama
1

Windows

JSOUP_HOME ortam değişkenini C: \ JSOUP olarak ayarlayın

2

Linux

JSOUP_HOME = / usr / local / JSOUP dışa aktar

3

Mac

JSOUP_HOME = / Kitaplık / JSOUP dışa aktar

Adım 5: CLASSPATH Değişkenini Ayarlayın

Yı kur CLASSPATH JSOUP jar konumuna işaret edecek ortam değişkeni.

Sr.No İşletim Sistemi ve Açıklama
1

Windows

CLASSPATH ortam değişkenini% CLASSPATH%;% JSOUP_HOME% \ jsoup-1.8.3.jar;.;

2

Linux

dışa aktar CLASSPATH = $ CLASSPATH: $ JSOUP_HOME / jsoup-1.8.3.jar :.

3

Mac

dışa aktar CLASSPATH = $ CLASSPATH: $ JSOUP_HOME / jsoup-1.8.3.jar :.

Aşağıdaki örnek, bir HTML Dizesinin Belge nesnesine ayrıştırılmasını gösterecektir.

Sözdizimi

Document document = Jsoup.parse(html);

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - verilen HTML Dizesini ayrıştırmak için ana sınıf.

  • html - HTML Dizesi.

Açıklama

Parse (String html) yöntemi, giriş HTML'sini yeni bir Belgeye ayrıştırır. Bu belge nesnesi, html etki alanında gezinmek ve ayrıntıları almak için kullanılabilir.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class JsoupTester {
   public static void main(String[] args) {
   
      String html = "<html><head><title>Sample Title</title></head>"
         + "<body><p>Sample Content</p></body></html>";
      Document document = Jsoup.parse(html);
      System.out.println(document.title());
      Elements paragraphs = document.getElementsByTag("p");
      for (Element paragraph : paragraphs) {
            System.out.println(paragraph.text());
      }
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Sample Title
Sample Content

Aşağıdaki örnek, bir HTML kesir dizgesinin bir Element nesnesine html gövdesi olarak ayrıştırılmasını gösterecektir.

Sözdizimi

Document document = Jsoup.parseBodyFragment(html);
Element body = document.body();

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - verilen HTML Dizesini ayrıştırmak için ana sınıf.

  • html - HTML parçası Dize.

  • body - belgenin gövde öğesinin öğe alt öğelerini temsil eder ve document.getElementsByTag ("body") ile eşdeğerdir.

Açıklama

ParseBodyFragment (String html) yöntemi, giriş HTML'sini yeni bir Belgeye ayrıştırır. Bu belge nesnesi, html gövde parçası üzerinde geçiş yapmak ve ayrıntıları almak için kullanılabilir.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class JsoupTester {
   public static void main(String[] args) {
   
      String html = "<div><p>Sample Content</p>";
      Document document = Jsoup.parseBodyFragment(html);
      Element body = document.body();
      Elements paragraphs = body.getElementsByTag("p");
      for (Element paragraph : paragraphs) {
         System.out.println(paragraph.text());
      }
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Sample Content

Aşağıdaki örnek, bir URL kullanarak web'den bir HTML getirmeyi ve ardından verilerini bulmayı gösterecektir.

Sözdizimi

String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - url'yi bağlamak ve HTML Dizesini almak için ana sınıf.

  • url - yüklenecek html sayfasının url'si.

Açıklama

Connect (url) yöntemi url'ye bir bağlantı kurar ve get () yöntemi istenen url'nin html'sini döndürür.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class JsoupTester {
   public static void main(String[] args) throws IOException {
   
      String url = "http://www.google.com";
      Document document = Jsoup.connect(url).get();
      System.out.println(document.title());
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Google

Aşağıdaki örnek, bir dosya kullanarak diskten bir HTML getirmeyi ve ardından verilerini bulmayı gösterecektir.

Sözdizimi

String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - url'yi bağlamak ve HTML Dizesini almak için ana sınıf.

  • url - yüklenecek html sayfasının url'si.

Açıklama

Connect (url) yöntemi url'ye bir bağlantı kurar ve get () yöntemi istenen url'nin html'sini döndürür.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class JsoupTester {
   public static void main(String[] args) throws IOException, URISyntaxException {
      
      URL path = ClassLoader.getSystemResource("test.htm");
      File input = new File(path.toURI());
      Document document = Jsoup.parse(input, "UTF-8");
      System.out.println(document.title());
   }
}

test.htm

C: \ jsoup klasöründe aşağıdaki test.htm dosyasını oluşturun.

<html>
   <head>
      <title>Sample Title</title>
   </head>
   <body>
      <p>Sample Content</p>
   </body>
</html>

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Sample Title

Aşağıdaki örnek, bir HTML Dizesini Document nesnesine ayrıştırdıktan sonra DOM benzeri yöntemlerin kullanımını gösterecektir.

Sözdizimi

Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - verilen HTML Dizesini ayrıştırmak için ana sınıf.

  • html - HTML Dizesi.

  • sampleDiv - Öğe nesnesi, "sampleDiv" id'si ile tanımlanan html düğüm öğesini temsil eder.

  • links - Elements nesnesi, "a" etiketiyle tanımlanan çoklu düğüm öğelerini temsil eder.

Açıklama

Parse (String html) yöntemi, giriş HTML'sini yeni bir Belgeye ayrıştırır. Bu belge nesnesi, html etki alanında gezinmek ve ayrıntıları almak için kullanılabilir.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class JsoupTester {
   public static void main(String[] args) {
   
      String html = "<html><head><title>Sample Title</title></head>"
         + "<body>"
         + "<p>Sample Content</p>"
         + "<div id='sampleDiv'><a href='www.google.com'>Google</a></div>"
         +"</body></html>";
      Document document = Jsoup.parse(html);
      System.out.println(document.title());
      Elements paragraphs = document.getElementsByTag("p");
      for (Element paragraph : paragraphs) {
         System.out.println(paragraph.text());
      }

      Element sampleDiv = document.getElementById("sampleDiv");
      System.out.println("Data: " + sampleDiv.text());
      Elements links = sampleDiv.getElementsByTag("a");

      for (Element link : links) {
         System.out.println("Href: " + link.attr("href"));
         System.out.println("Text: " + link.text());
      }
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Sample Title
Sample Content
Data: Google
Href: www.google.com
Text: Google

Aşağıdaki örnek, bir HTML Dizesini Document nesnesine ayrıştırdıktan sonra seçici yöntemlerin kullanımını gösterecektir. jsoup, CSS Seçicilerine benzer seçicileri destekler.

Sözdizimi

Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - verilen HTML Dizesini ayrıştırmak için ana sınıf.

  • html - HTML Dizesi.

  • sampleDiv - Öğe nesnesi, "sampleDiv" id'si ile tanımlanan html düğüm öğesini temsil eder.

  • links - Elements nesnesi, "a" etiketiyle tanımlanan çoklu düğüm öğelerini temsil eder.

Açıklama

Document.select (ifade) yöntemi, bir html dom öğesi seçmek için verilen CSS seçici ifadesini ayrıştırır.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class JsoupTester {
   public static void main(String[] args) {
   
      String html = "<html><head><title>Sample Title</title></head>"
         + "<body>"
         + "<p>Sample Content</p>"
         + "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
         + "<h3><a>Sample</a><h3>"
         +"</div>"
         + "<div id='imageDiv' class='header'><img name='google' src='google.png' />"
         + "<img name='yahoo' src='yahoo.jpg' />"
         +"</div>"
         +"</body></html>";
      Document document = Jsoup.parse(html);

      //a with href
      Elements links = document.select("a[href]");

      for (Element link : links) {
         System.out.println("Href: " + link.attr("href"));
         System.out.println("Text: " + link.text());
      }

      // img with src ending .png
      Elements pngs = document.select("img[src$=.png]");

      for (Element png : pngs) {
         System.out.println("Name: " + png.attr("name"));
      }

      // div with class=header
      Element headerDiv = document.select("div.header").first();
      System.out.println("Id: " + headerDiv.id());
   
      // direct a after h3
      Elements sampleLinks = document.select("h3 > a"); 

      for (Element link : sampleLinks) {
         System.out.println("Text: " + link.text());
      }
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Href: www.google.com
Text: Google
Name: google
Id: imageDiv
Text: Sample

Aşağıdaki örnek, bir HTML Dizesini Document nesnesine ayrıştırdıktan sonra bir dom öğesinin niteliğini elde etmek için yöntem kullanımını gösterecektir.

Sözdizimi

Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Href: " + link.attr("href"));

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - verilen HTML Dizesini ayrıştırmak için ana sınıf.

  • html - HTML Dizesi.

  • link - Öğe nesnesi, bağlantı etiketini temsil eden html düğüm öğesini temsil eder.

  • link.attr() - attr (öznitelik) yöntemi öğe özniteliğini alır.

Açıklama

Öğe nesnesi bir etki alanını temsil eder ve bir dom öğesinin özniteliğini elde etmek için çeşitli yöntemler sağlar.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class JsoupTester {
   public static void main(String[] args) {
   
      String html = "<html><head><title>Sample Title</title></head>"
         + "<body>"
         + "<p>Sample Content</p>"
         + "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
         + "<h3><a>Sample</a><h3>"
         +"</div>"
         +"</body></html>";
      Document document = Jsoup.parse(html);

      //a with href
      Element link = document.select("a").first();         

      System.out.println("Href: " + link.attr("href"));
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Href: www.google.com

Aşağıdaki örnek, bir HTML Dizesini Document nesnesine ayrıştırdıktan sonra metin almak için yöntemlerin kullanımını gösterecektir.

Sözdizimi

Document document = Jsoup.parse(html);
Element link = document.select("a").first();     
System.out.println("Text: " + link.text());

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - verilen HTML Dizesini ayrıştırmak için ana sınıf.

  • html - HTML Dizesi.

  • link - Öğe nesnesi, bağlantı etiketini temsil eden html düğüm öğesini temsil eder.

  • link.text() - text () yöntemi, öğe metnini alır.

Açıklama

Öğe nesnesi bir alanı temsil eder ve bir dom öğesinin metnini almak için çeşitli yöntemler sağlar.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class JsoupTester {
   public static void main(String[] args) {
   
      String html = "<html><head><title>Sample Title</title></head>"
         + "<body>"
         + "<p>Sample Content</p>"
         + "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
         + "<h3><a>Sample</a><h3>"
         +"</div>"
         +"</body></html>";
      Document document = Jsoup.parse(html);

      //a with href
      Element link = document.select("a").first();         

      System.out.println("Text: " + link.text());
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Text: Google

Aşağıdaki örnek, bir HTML Dizesini bir Belge nesnesine ayrıştırdıktan sonra iç html ve dış html almak için yöntemlerin kullanımını gösterecektir.

Sözdizimi

Document document = Jsoup.parse(html);
Element link = document.select("a").first();         

System.out.println("Outer HTML: " + link.outerHtml());
System.out.println("Inner HTML: " + link.html());

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - verilen HTML Dizesini ayrıştırmak için ana sınıf.

  • html - HTML Dizesi.

  • link - Öğe nesnesi, bağlantı etiketini temsil eden html düğüm öğesini temsil eder.

  • link.outerHtml() - OuterHtml () yöntemi, tüm html öğesini alır.

  • link.html() - html () yöntemi, html içindeki öğeyi alır.

Açıklama

Öğe nesnesi bir etki alanını temsil eder ve bir dom öğesinin html'sini almak için çeşitli yöntemler sağlar.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class JsoupTester {
   public static void main(String[] args) {
   
      String html = "<html><head><title>Sample Title</title></head>"
         + "<body>"
         + "<p>Sample Content</p>"
         + "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
         + "<h3><a>Sample</a><h3>"
         +"</div>"
         +"</body></html>";
      Document document = Jsoup.parse(html);

      //a with href
      Element link = document.select("a").first();         

      System.out.println("Outer HTML: " + link.outerHtml());
      System.out.println("Inner HTML: " + link.html());
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Outer HTML: <a href="www.google.com">Google</a>
Inner HTML: Google

Aşağıdaki örnek, html sayfasında bulunan göreli ve mutlak URL'leri sağlayabilen yöntemleri gösterecektir.

Sözdizimi

String url = "http://www.tutorialspoint.com/";
Document document = Jsoup.connect(url).get();
Element link = document.select("a").first();         

System.out.println("Relative Link: " + link.attr("href"));
System.out.println("Absolute Link: " + link.attr("abs:href"));
System.out.println("Absolute Link: " + link.absUrl("href"));

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - bir url'ye bağlanmak ve html içeriğini almak için ana sınıf.

  • link - Öğe nesnesi, bağlantı etiketini temsil eden html düğüm öğesini temsil eder.

  • link.attr("href")- bağlantı etiketinde bulunan href değerini sağlar. Göreli veya mutlak olabilir.

  • link.attr("abs:href") - belgenin temel URI'sine göre çözümledikten sonra mutlak url'yi sağlar.

  • link.absUrl("href") - belgenin temel URI'sine göre çözümledikten sonra mutlak url'yi sağlar.

Açıklama

Öğe nesnesi, bir etki alanını temsil eder ve html sayfasında bulunan mutlak URL'lerin yanı sıra göreli alma yöntemleri sağlar.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class JsoupTester {
   public static void main(String[] args) throws IOException {
   
      String url = "http://www.tutorialspoint.com/";
      Document document = Jsoup.connect(url).get();

      Element link = document.select("a").first();
      System.out.println("Relative Link: " + link.attr("href"));
      System.out.println("Absolute Link: " + link.attr("abs:href"));
      System.out.println("Absolute Link: " + link.absUrl("href"));
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Relative Link: index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm

Aşağıdaki örnek, bir HTML Dizesini Document nesnesine ayrıştırdıktan sonra bir dom öğesinin niteliklerini ayarlamak için yöntem kullanımını, toplu güncellemeleri ve sınıf yöntemlerini ekleme / kaldırma gösterecektir.

Sözdizimi

Document document = Jsoup.parse(html);
Element link = document.select("a").first();         
link.attr("href","www.yahoo.com");     
link.addClass("header"); 
link.removeClass("header");

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - verilen HTML Dizesini ayrıştırmak için ana sınıf.

  • html - HTML Dizesi.

  • link - Öğe nesnesi, bağlantı etiketini temsil eden html düğüm öğesini temsil eder.

  • link.attr() - attr (öznitelik, değer) yöntemi öğe özniteliğini karşılık gelen değeri ayarlar.

  • link.addClass() - addClass (class) yöntemi, sınıfı sınıf özniteliğinin altına ekler.

  • link.removeClass() - removeClass (sınıf) yöntemi, sınıf özelliği altındaki sınıfı kaldırır.

Açıklama

Öğe nesnesi bir etki alanını temsil eder ve bir dom öğesinin özniteliğini elde etmek için çeşitli yöntemler sağlar.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class JsoupTester {
   public static void main(String[] args) {
   
      String html = "<html><head><title>Sample Title</title></head>"
         + "<body>"
         + "<p>Sample Content</p>"
         + "<div id='sampleDiv'><a id='googleA' href='www.google.com'>Google</a></div>"
         + "<div class='comments'><a href='www.sample1.com'>Sample1</a>"
         + "<a href='www.sample2.com'>Sample2</a>"
         + "<a href='www.sample3.com'>Sample3</a><div>"
         +"</div>"
         + "<div id='imageDiv' class='header'><img name='google' src='google.png' />"
         + "<img name='yahoo' src='yahoo.jpg' />"
         +"</div>"
         +"</body></html>";
      Document document = Jsoup.parse(html);

      //Example: set attribute
      Element link = document.getElementById("googleA");
      System.out.println("Outer HTML Before Modification :"  + link.outerHtml());
      link.attr("href","www.yahoo.com");      
      System.out.println("Outer HTML After Modification :"  + link.outerHtml());
      System.out.println("---");
      
      //Example: add class
      Element div = document.getElementById("sampleDiv");
      System.out.println("Outer HTML Before Modification :"  + div.outerHtml());
      link.addClass("header");      
      System.out.println("Outer HTML After Modification :"  + div.outerHtml());
      System.out.println("---");
      
      //Example: remove class
      Element div1 = document.getElementById("imageDiv");
      System.out.println("Outer HTML Before Modification :"  + div1.outerHtml());
      div1.removeClass("header");      
      System.out.println("Outer HTML After Modification :"  + div1.outerHtml());
      System.out.println("---");
      
      //Example: bulk update
      Elements links = document.select("div.comments a");
      System.out.println("Outer HTML Before Modification :"  + links.outerHtml());
      links.attr("rel", "nofollow");
      System.out.println("Outer HTML Before Modification :"  + links.outerHtml());
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Outer HTML Before Modification :<a id="googleA" href="www.google.com">Google</a>
Outer HTML After Modification :<a id="googleA" href="www.yahoo.com">Google</a>
---
Outer HTML Before Modification :<div id="sampleDiv">
 <a id="googleA" href="www.yahoo.com">Google</a>
</div>
Outer HTML After Modification :<div id="sampleDiv">
 <a id="googleA" href="www.yahoo.com" class="header">Google</a>
</div>
---
Outer HTML Before Modification :<div id="imageDiv" class="header">
 <img name="google" src="google.png">
 <img name="yahoo" src="yahoo.jpg">
</div>
Outer HTML After Modification :<div id="imageDiv" class="">
 <img name="google" src="google.png">
 <img name="yahoo" src="yahoo.jpg">
</div>
---
Outer HTML Before Modification :<a href="www.sample1.com">Sample1</a>
<a href="www.sample2.com">Sample2</a>
<a href="www.sample3.com">Sample3</a>
Outer HTML Before Modification :<a href="www.sample1.com" rel="nofollow">Sample1</a>
<a href="www.sample2.com" rel="nofollow">Sample2</a>
<a href="www.sample3.com" rel="nofollow">Sample3</a>

Aşağıdaki örnek, bir HTML Dizesini Document nesnesine ayrıştırdıktan sonra html'yi bir dom öğesine ayarlamak, başa eklemek veya eklemek için yöntem kullanımını gösterecektir.

Sözdizimi

Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");     
div.html("<p>This is a sample content.</p>");   
div.prepend("<p>Initial Text</p>");
div.append("<p>End Text</p>");

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - verilen HTML Dizesini ayrıştırmak için ana sınıf.

  • html - HTML Dizesi.

  • div - Öğe nesnesi, bağlantı etiketini temsil eden html düğüm öğesini temsil eder.

  • div.html() - html (içerik) yöntemi, elemanın dış html'sini karşılık gelen değerle değiştirir.

  • div.prepend() - prepend (içerik) yöntemi, içeriği dış html'den önce ekler.

  • div.append() - append (content) yöntemi, içeriği dış html'den sonra ekler.

Açıklama

Öğe nesnesi, bir etki alanını temsil eder ve html'yi bir dom öğesine ayarlamak, başına eklemek veya eklemek için çeşitli yöntemler sağlar.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class JsoupTester {
   public static void main(String[] args) {
   
      String html = "<html><head><title>Sample Title</title></head>"
         + "<body>"
         + "<div id='sampleDiv'><a id='googleA' href='www.google.com'>Google</a></div>"
         +"</body></html>";
      Document document = Jsoup.parse(html);

      Element div = document.getElementById("sampleDiv");
      System.out.println("Outer HTML Before Modification :\n"  + div.outerHtml());
      div.html("<p>This is a sample content.</p>");
      System.out.println("Outer HTML After Modification :\n"  + div.outerHtml());
      div.prepend("<p>Initial Text</p>");
      System.out.println("After Prepend :\n"  + div.outerHtml());
      div.append("<p>End Text</p>");
      System.out.println("After Append :\n"  + div.outerHtml());          
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Outer HTML Before Modification :
<div id="sampleDiv">
 <a id="googleA" href="www.google.com">Google</a>
</div>
Outer HTML After Modification :
<div id="sampleDiv">
 <p>This is a sample content.</p>
</div>
After Prepend :
<div id="sampleDiv">
 <p>Initial Text</p>
 <p>This is a sample content.</p>
</div>
After Append :
<div id="sampleDiv">
 <p>Initial Text</p>
 <p>This is a sample content.</p>
 <p>End Text</p>
</div>
Outer HTML Before Modification :
<span>Sample Content</span>
Outer HTML After Modification :
<span>Sample Content</span>

Aşağıdaki örnek, bir HTML Dizesini Document nesnesine ayrıştırdıktan sonra metni bir dom öğesine ayarlama, başa ekleme veya ekleme yönteminin kullanımını gösterecektir.

Sözdizimi

Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");     
div.text("This is a sample content.");   
div.prepend("Initial Text.");
div.append("End Text.");

Nerede

  • document - belge nesnesi HTML DOM'u temsil eder.

  • Jsoup - verilen HTML Dizesini ayrıştırmak için ana sınıf.

  • html - HTML Dizesi.

  • div - Öğe nesnesi, bağlantı etiketini temsil eden html düğüm öğesini temsil eder.

  • div.text() - metin (içerik) yöntemi, öğenin içeriğini karşılık gelen değerle değiştirir.

  • div.prepend() - prepend (içerik) yöntemi, içeriği dış html'den önce ekler.

  • div.append() - append (content) yöntemi, içeriği dış html'den sonra ekler.

Açıklama

Öğe nesnesi, bir etki alanını temsil eder ve html'yi bir dom öğesine ayarlamak, başına eklemek veya eklemek için çeşitli yöntemler sağlar.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class JsoupTester {
   public static void main(String[] args) {

      String html = "<html><head><title>Sample Title</title></head>"
         + "<body>"
         + "<div id='sampleDiv'><a id='googleA' href='www.google.com'>Google</a></div>"
         +"</body></html>";
      Document document = Jsoup.parse(html);

      Element div = document.getElementById("sampleDiv");
      System.out.println("Outer HTML Before Modification :\n"  + div.outerHtml());
      div.text(This is a sample content.");
      System.out.println("Outer HTML After Modification :\n"  + div.outerHtml());
      div.prepend("Initial Text.");
      System.out.println("After Prepend :\n"  + div.outerHtml());
      div.append("End Text.");
      System.out.println("After Append :\n"  + div.outerHtml());
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Outer HTML Before Modification :
<div id="sampleDiv">
 <a id="googleA" href="www.google.com">Google</a>
</div>
Outer HTML After Modification :
<div id="sampleDiv">
 This is a sample content.
</div>
After Prepend :
<div id="sampleDiv">
 Initial Text.This is a sample content.
</div>
After Append :
<div id="sampleDiv">
 Initial Text.This is a sample content.End Text.
</div>

Aşağıdaki örnek, XSS saldırılarının veya siteler arası komut dosyası çalıştırma saldırısının önlenmesini gösterecektir.

Sözdizimi

String safeHtml =  Jsoup.clean(html, Whitelist.basic());

Nerede

  • Jsoup - verilen HTML Dizesini ayrıştırmak için ana sınıf.

  • html - İlk HTML Dizesi.

  • safeHtml - Temizlenmiş HTML.

  • Whitelist - html'yi korumak için varsayılan konfigürasyonları sağlayan nesne.

  • clean() - html'yi Beyaz Listeyi kullanarak temizler.

Açıklama

Jsoup nesnesi, Beyaz Liste yapılandırmalarını kullanarak bir html'yi temizler.

Misal

C: /> jsoup gibi herhangi bir düzenleyiciyi kullanarak aşağıdaki java programını oluşturun.

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.safety.Whitelist;

public class JsoupTester {
   public static void main(String[] args) {

      String html = "<p><a href='http://example.com/'"
         +" onclick='checkData()'>Link</a></p>";

      System.out.println("Initial HTML: " + html);
      String safeHtml =  Jsoup.clean(html, Whitelist.basic());

      System.out.println("Cleaned HTML: " +safeHtml);
   }
}

Sonucu doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici:

C:\jsoup>javac JsoupTester.java

Şimdi sonucu görmek için JsoupTester'ı çalıştırın.

C:\jsoup>java JsoupTester

Sonucu görün.

Initial HTML: <p><a href='http://example.com/' onclick='checkData()'>Link</a></p>
Cleaned HTML: <p><a href="http://example.com/" rel="nofollow">Link</a></p>