Liste von Dateiname aus html Dokument auslesen

henso

Grünschnabel
Guten Tag,

ich bin gerade auf der Suche nach einem passenden Werkzeug, um bestimmte html-tags aus einem html-Dokument auszulesen.
Bisher bin habe ich noch keine wirklich hilfreiche Quelle gefunden. Vll. kann mir ja einer weiter helfen.

Das Dokoment sieht wie folgt aus:
HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>Index of /*piep*/*piep*/*piep*/hdpi</title>
 </head>
 <body>
<h1>Index of /*piep*/*piep*/*piep*/hdpi</h1>
<pre><img src="/icons/blank.gif" alt="Icon " /> 
<a href="?C=N;O=D">Name</a>                       
<a href="?C=M;O=A">Last modified</a>      
<a href="?C=S;O=A">Size</a>  
<hr /><img src="/icons/back.gif" alt="[DIR]" /> 
<a href="/*piep*/*piep*/*piep*/">Parent Directory</a>                                -   
<img src="/icons/image2.gif" alt="[IMG]" /> <a href="bild_01.jpg">bild_01.jpg</a> 10-Aug-2012 14:33  5.3K  
<img src="/icons/image2.gif" alt="[IMG]" /> <a href="bild_02.jpg">bild_02.jpg</a> 10-Aug-2012 14:33  4.8K  
<img src="/icons/image2.gif" alt="[IMG]" /> <a href="bild_03.jpg">bild_03.jpg</a> 10-Aug-2012 14:33  4.0K  
<img src="/icons/image2.gif" alt="[IMG]" /> <a href="bild_04.jpg">bild_04.jpg</a> 10-Aug-2012 14:33  4.1K  
<img src="/icons/image2.gif" alt="[IMG]" /> <a href="bild_05.jpg">bild_05.jpg</a> 10-Aug-2012 14:32  5.0K  
<img src="/icons/image2.gif" alt="[IMG]" /> <a href="bild_06.jpg">bild_06.jpg</a> 10-Aug-2012 14:33  4.8K  
<hr /></pre>
<address>Apache/2.2.16 (Debian) Server at how.honey.is.that.then Port 80</address>
</body></html>

mein ziel ist es, am ende einen String, Array oder File zu haben, der bild_01.jpg, bild_02.jpg, bild_03.jpg, bild_04.jpg, bild_05.jpg, bild_06.jpg als text enthält. Wäre für Ratschläge sehr dankbar

Gruß
 
lese die datei als erstes in einen string ein, wenn sie auf deinem pc liegt:
Java:
			BufferedReader br = new BufferedReader(new FileReader("C:/Users/Adrian/Desktop/test.html"));
			String s;
			String htmlData="";
			
			while((s=br.readLine())!=null){
				htmlData +=s;
			}

wenn die datei nicht auf deinem pc liegt sollte
Java:
            URL url = new URL(String URL);
            InputStream in = url.openStream();
            InputStreamReader isr = new InputStreamReader(in); 
            BufferedReader buff = new BufferedReader(isr);
            .............

helfen

danach kannse halt htmlData nach allen arten der Stringmanipulation nach deinen dateinamen (bildnamen) abzusuchen.

da du das html als threadtitel gemacht hast denke ich darum gehts es dir, falls du nicht weißt wie du diesen string dann durchsuchst, melde dich ^^
 
Zuletzt bearbeitet:
Hi,
das Auslesen funktioniert einwandfrei, danke.

Aber ich bekomme ja leider das html-Dokument als Ganzes zurück. Also mit allen Tags, mit Doctype, etc...
Das ist natürlich nicht Sinn der Sache.
Mein Ziel war/ist es das ich einen bestimmen Part aus dem Dokument auslesen kann. Quasi eine Art Parser, der mit einen bestimmten Teilstring zurückgibt.

Idealerweise sollte mir nur ein:
Code:
return "bild_01.jpg"\n"" + "bild_02.jpg"\n"" + "bild_03.jpg"\n"" + "bild_04.jpg"\n"" + "bild_05.jpg"\n"" + "bild_06.jpg"\n"
erzeugt werden.

Quasi ein String, aus dem ich alle unnützlichen "substrings" á la "<a href="...> getilgt habe.
Vielleicht gibt es da schon passende Funktionen, die mir die Arbeit etwas erleichtert.

Gruß
 
sagte ich ja, du bekomms das ganze html dokument in den String und danach musst du über Stringmanipulation die entsprechenden tags raufiltern. ich probier mal ;)

edit::

hier, schau dir das mal an, bei fragen melde dich :)
Java:
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Vector;

public class TestHtml {

	public TestHtml() {

		// html datei über pattern auslesen
		String pattern = "<img src=\"/icons/image2.gif\" alt=\"[IMG]\" /> <a href=\"";
		String path = "C:/Users/Adrian/Desktop/test.html";

		// html laden
		Vector<String> html = readHtml(path, pattern);

		// kleine ausgabe zur überprüfung
		for (String s : html) {
			System.out.println(s);
		}

		// nun enthält jeder eintrag des vectors eine zeile, in der sich unser
		// pattern befindet

		System.out.println();

		// jetzt die zeilen morphen
		html = findImages(html, pattern);

		// jetzt nochmal ausgeben
		for (String s : html) {
			System.out.println(s);
		}

	}

	public Vector<String> readHtml(String path, String pattern) {

		Vector<String> htmlData = new Vector<String>();
		try {
			// komplette html datei einlese
			// selber inhalt wie deine datei
			BufferedReader br = new BufferedReader(new FileReader(path));
			String s;

			// kleine änderung: wir lesen von anfang an nur die zeilen ein, die
			// unser pattern matchen
			while ((s = br.readLine()) != null) {
				if (s.contains(pattern))
					htmlData.add(s);
			}
			// htmlData enthält nun die gesamt datei als string
		} catch (Exception e) {
			e.printStackTrace();
		}
		return htmlData;

	}

	public Vector<String> findImages(Vector<String> v, String pattern) {

		// jetzt bearbeiten wir jeden eintrag des vectors
		for (String s : v) {
			// als erstes schneiden wir das pattern weg
			String help = s.substring(pattern.length());

			// wir wissen das der string nun mit dem gesuchten String anfängt,
			// und mit jpg ende
			help = help.substring(0, help.indexOf(".jpg") + ".jpg".length());

			// nun setzen
			v.set(v.indexOf(s), help);

		}

		return v;
	}

	public static void main(String[] args) {
		TestHtml t = new TestHtml();
	}
}

also deine bildnamen findest du dann am ende im Vector html



Ausgabe nach einlesen mit pattern:
Code:
<img src="/icons/image2.gif" alt="[IMG]" /> <a href="bild_01.jpg">bild_01.jpg</a> 10-Aug-2012 14:33  5.3K  
<img src="/icons/image2.gif" alt="[IMG]" /> <a href="bild_02.jpg">bild_02.jpg</a> 10-Aug-2012 14:33  4.8K  
<img src="/icons/image2.gif" alt="[IMG]" /> <a href="bild_03.jpg">bild_03.jpg</a> 10-Aug-2012 14:33  4.0K  
<img src="/icons/image2.gif" alt="[IMG]" /> <a href="bild_04.jpg">bild_04.jpg</a> 10-Aug-2012 14:33  4.1K  
<img src="/icons/image2.gif" alt="[IMG]" /> <a href="bild_05.jpg">bild_05.jpg</a> 10-Aug-2012 14:32  5.0K  
<img src="/icons/image2.gif" alt="[IMG]" /> <a href="bild_06.jpg">bild_06.jpg</a> 10-Aug-2012 14:33  4.8K
Ausgabe noch dem morphen:
Code:
bild_01.jpg
bild_02.jpg
bild_03.jpg
bild_04.jpg
bild_05.jpg
bild_06.jpg
 
Zuletzt bearbeitet:
Zurück