Bu Sayfayı Paylaş:

Kavram

Jericho HTML Parser

Tanım: Java'da, HTML belgesini veya ifadesini analiz etme veya değiştirme amacıyla kullanılan bir kütüphane

Kavram

TextExtractor

Tanım: Jericho HTML Parser projesinde, bir HTML içindeki metin içeriklerinin (tag ve attribute'leri dikkat etmeyerek) elde edilmesini sağlayan sınıf.

Örnek

Jericho HTML Parser ile Bir Html Belgesindeki Metin İçeriğinin Alındığı Örnek

Html belgesi aşağıdaki gibidir :
<html>
<head>
<meta charset="utf-8">
<title>Bilgi Sayfası</title>
</head>
<body>
<h1 class="test">Ali</h1> eve <b>şimdi</b> geldi
<img src="a.gif" alt="Ali'nin Resmi">
</body>
</html>
Bu HTML içindeki metinler aşağıdaki gibi uygulama ile alınıp ekrana basılabilir:
import java.io.ByteArrayInputStream;
import java.io.IOException;

import net.htmlparser.jericho.Source;
import net.htmlparser.jericho.TextExtractor;

public class TextExtractorTest {

	public static void main(String[] args) throws IOException {
		
		String html1="<html><head><meta charset=\"utf-8\"/><title>Bilgi Sayfası</title></head>"
				+ "<body><h1 class=\"test\">Ali</h1> eve <b>şimdi</b> geldi"
				+ "<img src=\"a.gif\"></body></html>";
		
		Source source=new Source(new ByteArrayInputStream(html1.getBytes("UTF-8")));
		
		TextExtractor textExtractor=new TextExtractor(source);
		
		System.out.println(textExtractor.toString());
		
	}
	
}
Ekranda aşağıdaki gibi bir metin görülür:


Bilgi Sayfası Ali eve şimdi geldi


Dikkat edilirse title elementi içeriği de alınmıştır. Attribute'lerin içeriği (örneğin h1 elementinin class attribute'si) alınmamıştır.

Örnek

Jericho HTML Parser ile Bir Html Belgesindeki Metin İçeriğinin ve Attribute Değerinin Alındığı Örnek

Html belgesi aşağıdaki gibidir :
<html><head>
<meta charset="utf-8"/>
<title>Bilgi Sayfası</title>
</head>
<body><h1 class="test">Ali</h1> eve <b>şimdi</b> geldi
<img src="a.gif" alt="Ali'nin Resmi">
</body></html>
Bu HTML içindeki metinler aşağıdaki gibi uygulama ile alınıp ekrana basılabilir:
import java.io.ByteArrayInputStream;
import java.io.IOException;

import net.htmlparser.jericho.Attribute;
import net.htmlparser.jericho.Source;
import net.htmlparser.jericho.StartTag;
import net.htmlparser.jericho.TextExtractor;

public class TextExtractorAtributeTest {

	public static void main(String[] args) throws IOException {
		
		String html1="<html><head><meta charset=\"utf-8\"/><title>Bilgi Sayfası</title></head>"
				+ "<body><h1 class=\"test\">Ali</h1> eve <b>şimdi</b> geldi"
				+ "<img src=\"a.gif\" alt=\"Ali'nin Resmi\"></body></html>";
		
		Source source=new Source(new ByteArrayInputStream(html1.getBytes("UTF-8")));
		
		TextExtractor textExtractor=new TextExtractor(source){
			public boolean includeAttribute(StartTag startTag, Attribute attribute) {
				
		        if(startTag.getName().equals("img") &&  attribute.getKey().equals("alt")){
		        	return true;
		        }
		        
		        return false;
		    }
		};
		
		textExtractor.setIncludeAttributes(true);
		
		System.out.println(textExtractor.toString());
		
	}
	
}
Ekranda aşağıdaki gibi bir metin görülür:


Bilgi Sayfası Ali eve şimdi geldi Ali'nin Resmi


Dikkat edilirse title elementinin değeri alınmıştır. includeAttribute method'u override edilerek, img elementinin, alt attributes'in değeri de alınmıştır. Bunun yapılabilmesi için setIncludeAttributes ile true değer atanmalıdır.




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir