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>