# html2text



## DocRandom (29. Okt 2007)

Moin Community!

Ich lese mit Erfolg Webseiten mittels HTTPUnit aus, jedoch bekomme ich da den kompletten SiteQuelltext.
Gibt es etwas, das so wie html2text (Linux/Unix/derivative haben das ja implementiert) ?
Es ist zwar nett das ich per HTTPUnit den kompletten Quelltext bekomme, jedoch brauche ich nur die darzuistellende Text-Information.

HTTPUnit kommt deshalb zur Anwendung, da es sich um durch Sessions geschützte Seiten handelt und per Fromulareingabe, gewisse Seiten erst zur Anzeige gelangen.

Hat jemand eine Idee?
Wäre nett, wenn mir jemand weiterhelfen könnte.

lg
DocRandom


----------



## DocRandom (30. Okt 2007)

..nun, da sich so viele Leutz gemeldet haben, werd ich wohl oder übel eine eigene Library dafür schreiben müssen 

lg
DocRandom


----------



## Murray (30. Okt 2007)

Sieht dir mal javax.swing.text.html.HTMLEditorKit an, damit müsste es in etwa so gehen:


```
HTMLEditorKit editorKit = new HTMLEditorKit();
Document doc = editorKit.createDefaultDocument();
editorKit.read( new StringReader( strHtml, doc, 0);
String strText =  doc.getText( 0, doc.getLength());
```


----------



## DocRandom (30. Okt 2007)

Hi Murray!

thx für den Hinweis, werde es mir gleich mal ansehen!

lg
DocRandom


----------



## DocRandom (30. Okt 2007)

..hmm da wird mir eine Exception geworfen mit der ich nix anfangen kann:


> javax.swing.text.ChangedCharSetException
> at javax.swing.text.html.parser.DocumentParser.handleEmptyTag(DocumentParser.java:172)
> at javax.swing.text.html.parser.Parser.startTag(Parser.java:410)
> at javax.swing.text.html.parser.Parser.parseTag(Parser.java:1926)
> ...



Hier mein Code dazu:
	
	
	
	





```
package test;

import java.io.IOException;
import java.io.StringReader;
import java.net.MalformedURLException;

import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.html.HTMLEditorKit;

import org.xml.sax.SAXException;

import scanner.IcePlayer;

import com.meterware.httpunit.HttpUnitOptions;
import com.meterware.httpunit.WebConversation;
import com.meterware.httpunit.WebResponse;

public class Main {

	public static void main(String[] args) {
		
		IcePlayer ip = new IcePlayer("-=DocRandom=-","geheim",true);
		System.out.println(ip.getSitterLink());
		HttpUnitOptions.setScriptingEnabled(false);
		WebConversation wc = new WebConversation();
		WebResponse wr;
		try {
			wr = wc.getResponse(ip.getSitterLink());
			System.out.println(wr.getText());
			HTMLEditorKit editor = new HTMLEditorKit();
			Document doc = editor.createDefaultDocument();
			try {
				editor.read(new StringReader(wr.getText()), doc, 0);
				System.out.println(doc.getText( 0, doc.getLength()));
			} catch (BadLocationException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SAXException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
						
	}

}
```
..was könnt das auslösen?

lg
DocRandom


----------



## DocRandom (31. Okt 2007)

...*hüpf* 
habs gefunden!
Aber danke für die Hilfe!

lg
DocRandom


----------



## kajdo (31. Okt 2007)

Hi!

der thread hoert sich recht interssant an ... kannst die loesung des problems bitte auch posten?

danke + lG aus downunder


----------



## Murray (31. Okt 2007)

Google empfiehlt hier:

```
doc.putProperty("IgnoreCharsetDirective", new Boolean(true));
```


----------



## DocRandom (31. Okt 2007)

kajdo hat gesagt.:
			
		

> Hi!
> 
> der thread hoert sich recht interssant an ... kannst die loesung des problems bitte auch posten?
> 
> danke + lG aus downunder



Hi kaido!

..jo mach ich, sobald ich wieder vor meinem produktivem System sitze, also erst nach dem WE!

lg
DocRandom


----------

