# Content einer Webseite parsen



## Alex2xm (21. November 2003)

Hallo Forum,

habe leider folgendes Problem und finde gerade keinen Ansatz es zu lösen:

Mittels einer URLConnection habe ich mit der Methode
<snip>
    public static void verbinden() {
        try {
            URL urlseite = new URL(URL_Query);
            URLConnection urlzugriff = urlseite.openConnection();
            DataInputStream zeichenfolge;
            String zeile;
            zeichenfolge = new DataInputStream(urlzugriff.getInputStream());
            while ((zeile = zeichenfolge.readLine()) != null) {
                System.out.println(zeile);
            } // end of wihle
            zeichenfolge.close();
        } // end of try
        catch (Exception e) {
            System.out.println(e);
        } // end of catch
    } // end of verbinden()
<snip>
den Inhalt einer Webseite (URL wird durch die Variable URL_Query übergeben) ausgelesen. Nun will ich den Inhalt auf bestimmte Worte untersuchen (also ähnlich wie eine Suchmaschine). Kann mir jm. einen Denkanstoss (evtl. sogar mit Code) geben? Wäre Euch sehr verbunden.

Vielen Dank für die Hilfe im Voraus. 
Alexander


----------



## Thomas Kuse (21. November 2003)

Strings kannst meines Erachtens du doch mit string.find(string what) durchsuchen.
Reicht Dir das nicht oder benötigst Du was anderes?


----------



## Thomas Darimont (21. November 2003)

Servus!


```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

/*
 * Created on 21.11.2003
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */

/**
 * @author Administrator
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class WebsiteReader {
	final String[] KEYWORDS = { "tutorials", "http" };
	public static void main(String[] args) {
		new WebsiteReader().doIt("http://www.tutorials.de");
	}

	/**
	 * 
	 */
	private void doIt(String s) {
		// TODO Auto-generated method stub

		BufferedReader br = null;
		InputStreamReader isr = null;
		URL url = null;
		try {
			url = new URL(s);
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		if (url != null) {
			try {
				isr = new InputStreamReader(url.openStream());
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			br = new BufferedReader(isr);

			String line = null;

			try {
				while ((line = br.readLine()) != null) {
					if (checkKeyWords(line)) {

						System.out.println(line);
					}
				}

			} catch (IOException e2) {
				// TODO Auto-generated catch block
				e2.printStackTrace();
			}

		}

	}

	/**
	 * @param line
	 * @return
	 */
	private boolean checkKeyWords(String line) {
		// TODO Auto-generated method stub

		for (int i = 0; i < KEYWORDS.length; i++) {
			if (line.indexOf(KEYWORDS[i]) >= 0)
				return true;
		}

		return false;
	}
}
```

Gruß Tom


----------



## Alex2xm (22. November 2003)

Hi Thomas,

danke für Deine Mühe mir ein fertiges Programm zu liefern. Hast mir wirklich weitergeholfen.
Vielen Dank!

Alexander


----------



## Alex2xm (24. November 2003)

*Noch ein Problemchen*

Hi,

zu obigen Programm habe ich noch eine Frage.  Wie bekomme ich es hin, dass die Keywords nicht Casesensitiv sind?

Danke für die Hilfe im Voraus.

Viele Grüße

Alex


----------



## Thomas Darimont (24. November 2003)

Servus!

new String("myString").equalsIgnoreCase("anotherstring");

?

Gruß Tom


----------



## Alex2xm (24. November 2003)

*Stehe wohl auf dem Schlauch*

Irgendwie verstehe ich das leider nicht so ganz. Stehe wohl auf dem Schlauch...

also nochmals komplett:

```
private boolean checkKeyWords(String line) {
		for (int i = 0; i < KEYWORDS.length; i++) {
			if (line.indexOf(KEYWORDS[i]) >= 0)
// hier sollen die Keywords gesucht werden. Aber wie?
				return true;
		}

		return false;
	}
```

Die Keywords werden ja wie folgt angelegt:

```
final String[] KEYWORDS = { "tutorials", "http" };
```

Das Problem ist nun, dass es ja unterschiedliche Schreibweise gibt. Z.B. kann tutorials auch Tutorials oder TuToRiAlS geschrieben werden. Es müssen allerdings alle Keywords gefunden werden. 

Hoffe es kann mir jm. helfen.

Danke im Voraus
Alex


----------

