html2text

Status
Nicht offen für weitere Antworten.

DocRandom

Top Contributor
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

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

lg
DocRandom
 

Murray

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

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

DocRandom

Top Contributor
..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)
at javax.swing.text.html.parser.Parser.parseContent(Parser.java:2044)
at javax.swing.text.html.parser.Parser.parse(Parser.java:2211)
at javax.swing.text.html.parser.DocumentParser.parse(DocumentParser.java:105)
at javax.swing.text.html.parser.ParserDelegator.parse(ParserDelegator.java:73)
at javax.swing.text.html.HTMLEditorKit.read(HTMLEditorKit.java:230)
at test.Main.main(Main.java:34)

Hier mein Code dazu:
Code:
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
 

kajdo

Mitglied
Hi!

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

danke + lG aus downunder
 

Murray

Top Contributor
Google empfiehlt hier:
Code:
doc.putProperty("IgnoreCharsetDirective", new Boolean(true));
 

DocRandom

Top Contributor
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
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben