Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Logik » Daten aus Website einbauen » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
Mike großes Grinsen

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

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();
	}
}
Mike

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;
        }
    }
}

Mike hat dieses Bild (verkleinerte Version) angehängt:
Bildschirmfoto 2016-04-17 um 06.57.21.png

eulerscheZahl

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.
Mike

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.
Björn

Vielen lieben Dank :-)
eulerscheZahl

Ich habe mal etwas von hier zusammenkopiert: http://stackoverflow.com/questions/19293...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.
Björn

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.
eulerscheZahl

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.
Björn

Programmiersprache ist JAVA (Ich vergesse es immer wieder :-))
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.