Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
---- Logik (http://www.informatikerboard.de/board/board.php?boardid=16)
----- Daten aus Website einbauen (http://www.informatikerboard.de/board/thread.php?threadid=2417)


Geschrieben von Björn am 08.08.2015 um 22:37:

  Daten aus Website einbauen

Meine Frage:
Hallo Leute,

eine weitere Frage: Ist es eigentlich möglich, in Java bestimmte Websiten einzubauen? Ich meine damit, dass dann die einzelnen Wörter vielleicht in einem Array gespeichert werden und dann die Website ausgewertet werden kann?

Meine Ideen:
Vielen Dank :-)



Geschrieben von Björn am 08.08.2015 um 22:37:

 

Programmiersprache ist JAVA (Ich vergesse es immer wieder :-))



Geschrieben von eulerscheZahl am 09.08.2015 um 07:34:

 

Was meinst du mit einbauen?
Willst du den Inhalt auslesen und Informationen herausziehen?
Willst du in deinem Programm einen Browser anzeigen?

Das habe ich bisher beides nur in C# gemacht, aber bei ersterem bin ich mir sicher, dass es auch in Java keine große Kunst ist (dynamisch mit JavaScript geladener Inhalt könnte etwas knifflig werden).

Eine detailliertere Antwort gibt es erst, wenn du die Frage spezifizierst.



Geschrieben von Björn am 09.08.2015 um 12:04:

 

Zitat:
Willst du den Inhalt auslesen und Informationen herausziehen? Willst du in deinem Programm einen Browser anzeigen?


Genau, ich möchte den Inhalt auslesen lassen. Ein Browser soll nicht angezeigt werden.



Geschrieben von eulerscheZahl am 09.08.2015 um 13:11:

 

Ich habe mal etwas von hier zusammenkopiert: http://stackoverflow.com/questions/19293235/reading-source-code-from-a-webpage-in-java
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class Main {

	public static void main(String[] args) {
		try {
			System.out
					.println(getUrlSource("http://www.informatikerboard.de/board/thread.php?postid=10227#post10227"));
		} catch (IOException e) {
			System.out.println("Lesefehler");
		}
	}

	private static String getUrlSource(String urlString) throws IOException {
		StringBuilder result = new StringBuilder();
		URL url = new URL(urlString);
		URLConnection spoof = url.openConnection();

		spoof.setRequestProperty("User-Agent",
				"Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; H010818)");
		BufferedReader in = new BufferedReader(new InputStreamReader(
				spoof.getInputStream()));
		String line = "";

		while ((line = in.readLine()) != null) {

			result.append(line + "\n");
		}
		in.close();
		return result.toString();
	}
}

Der Useragenet entspricht zwar nicht dem, was ich verwende, funktioniert aber. Wenn ich die Zeile auskommentiere, klappt es nicht mehr.



Geschrieben von Björn am 10.08.2015 um 10:44:

 

Vielen lieben Dank :-)



Geschrieben von Mike am 17.04.2016 um 05:58:

 

Guten Morgen,

bietet Java die Möglichkeit, ausgelesenen Code auf eine einheitliche Schriftart zu bekommen? Das Problem ist: Eine Website wird ausgelesen und nach einem bestimmten Char gesucht. Bei einem Quelltext wird das Zeichen gefunden, bei einer anderen Website mit dementsprechend anderen Quelltext findet das Programm das gleiche Zeichen nicht. Daher kann es nur an unterschiedlichen Schriftarten, etc. liegen?

Vielen Dank.



Geschrieben von eulerscheZahl am 17.04.2016 um 06:36:

 

Bei Code handelt es sich um reinen ASCII Text. Dort gibt es keine Schriftart, die Darstellung (Syntaxhighlighting) ist Sache des Editors.
Gib Links zu dein Seiten und den Text, nach dem du suchst an. Dann kann ich dir vielleicht sagen, warum es nicht klappt.



Geschrieben von Mike am 17.04.2016 um 06:58:

 

Leider habe ich zu wenige Beiträge verfasst um Links zu posten, deshalb habe ich das www und de entfernt. Mein Problem:

Ich versuche die Zeiten (sprich 09:30 etc.) auszulesen. Daher habe ich den Doppelpunkt als Zeichen suchen lassen und dann mit Substrings gearbeitet. Allerdings finden sich auf die ganze Seite verteilt nur zwei Doppelpunkte, müssten aber viel mehr sein.

Hier auch mein Code dazu:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
package read_website_file;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class Read_Website_File 
{
    public static void main(String[] args) 
    {
	try 
        {
            getUrlSource("hof-university./studierende/info-service/stundenplaene.html?tx_stundenplan_stundenplan[action]=list&tx_stundenplan_stundenplan[controller]=Stundenplan&tx_stundenplan_stundenplan[save]=&tx_stundenplan_stundenplan[studiengang]=MI&tx_stundenplan_stundenplan[semester]=4_SS_2016&tx_stundenplan_stundenplan[view]=alle#jpoint");
	} 
        catch (IOException e) 
        {
            System.out.println("Lesefehler");
	}
    }

    private static void getUrlSource(String urlString) throws IOException 
    {
        StringBuilder result = new StringBuilder();
	URL url = new URL(urlString);
	URLConnection spoof = url.openConnection();
	spoof.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; H010818)");
	BufferedReader in = new BufferedReader(new InputStreamReader(spoof.getInputStream()));
	String line = "";
        int i=0; 
        
	while ((line = in.readLine()) != null) 
        {
            result.append(line);
            if (result.charAt(i)==':')
            {
                System.out.println(result.substring(i-2,i+3));
            }
            ++i;
        }
    }
}



Geschrieben von eulerscheZahl am 17.04.2016 um 07:13:

 

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class Read_Website_File
{
	public static void main(String[] args)
	{
		try
		{
			String page = getUrlSource("http://www.hof-university.de/studierende/info-service/stundenplaene.html?tx_stundenplan_stundenplan[action]=list&tx_stundenplan_stundenplan[controller]=Stundenplan&tx_stundenplan_stundenplan[save]=&tx_stundenplan_stundenplan[studiengang]=MI&tx_stundenplan_stundenplan[semester]=4_SS_2016&tx_stundenplan_stundenplan[view]=alle#jpoint");
			while (page.contains("<span class=\"ttm_date\">")) {
				page = page.substring(page.indexOf("<span class=\"ttm_date\">") + "<span class=\"ttm_date\">".length(), page.length() - 1);
				System.out.println(page.substring(0, page.indexOf("</span>")).replace("\n", ""));
			}
		} catch (Exception e)
		{
			System.out.println(e.toString());
		}
	}

	private static String getUrlSource(String urlString) throws IOException
	{
		StringBuilder result = new StringBuilder();
		URL url = new URL(urlString);
		URLConnection spoof = url.openConnection();
		spoof.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; H010818)");
		BufferedReader in = new BufferedReader(new InputStreamReader(spoof.getInputStream()));
		String line = "";

		while ((line = in.readLine()) != null) {

			result.append(line + "\n");
		}
		in.close();
		return result.toString();
	}
}



Geschrieben von Mike am 17.04.2016 um 07:22:

großes Grinsen

Du bist der Wahnsinn, vielen Dank für die Hilfe Daumen hoch


Forensoftware: Burning Board, entwickelt von WoltLab GmbH