website durchsuchen

Status
Nicht offen für weitere Antworten.

odysseus

Bekanntes Mitglied
mit diesem code lade ich eine html, jsp, php, etc. -Seite runter. In dieser Datei will ich nach den gewünschten Informationen suchen.
in diesem fall schicke ich an leo.org das wort "umfrage" und würde jetzt gerne die antwort vom server nach der übersetzung für "umfrage"
durchsuchen und diese ausgeben...

wie mache ich das ?

in pho nutzt man hierzu die preg_match funktion, gibt es etwas ähnliches in java ?

Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class UrlConnecten {

	URL url;
	URLConnection conn;
	BufferedReader in;
	String adresse ="http://dict.leo.org/?search=umfrage&searchLoc=0&relink=on&spellToler=std&sectHdr=on&tableBorder=1&cmpType=relaxed&lang=de";

	public static void main(String[] args) {
		long start = System.currentTimeMillis();
		
		System.out.println("Startet...");
		
		UrlConnecten test = new UrlConnecten();
		test.urlErstellen(test.adresse);	

		//Verbindung herstellen, InputStream erstellen
		try {
			test.conn = test.url.openConnection();
			//test.in = conn.getInputStream();
			test.in =
				new BufferedReader(
					new InputStreamReader(test.conn.getInputStream()));
			String line;
			String antwort = "";
			while ((line = test.in.readLine()) != null) {
				//Server Antwort Beginn
				//System.out.println(line);
				antwort += line;
			}
			//Serverantwort Ende
			//Verbindung schliessen
			test.in.close();
			
			//Verarbeitung			
			
			System.out.println(antwort);

				test.scannen(antwort, "<title>", "</title>");
			
		} catch (IOException e) {
			e.printStackTrace();
		}

		
		long dauer = System.currentTimeMillis() - start;
		System.out.println("Ende (" + String.valueOf(dauer) + " millisekunden)");
		

	}
	
	public void urlErstellen(String adresse){
		//URL erstellen
		try {
			this.url = new URL(adresse);//suchseite
		} catch (MalformedURLException me) {
			me.printStackTrace();
		}
	}
	
	public void scannen(String suche, String start, String ende){
		/**
		 * Beispiel:
		 * test.scannen(antwort, "<title>", "</title>");
		 * test.scannen(antwort, "<head>", "</head>");
		 * test.scannen(antwort, "<div>", "</div>"); 
		 * 
		 * Alternative: Suche mit Patterns
		 * [url]http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html[/url]
		 */
		int c = suche.indexOf(start);
		int d = suche.indexOf(ende);
		String treffer = suche.substring(c + start.length(),d);
		System.out.println("Treffer: " + treffer);
	}
}
 

René Link

Aktives Mitglied
Hi,

ab Java 1.4 gibt es das Paket java.util.regex. Dort sind Klassen enthalten mit denen du
die Suche, mittels regulärer Ausdrücke, durchführen kannst. Also soetwas wie
preg_match oder preg_replace in PHP.

Vielleicht noch eine gedankliche Anregung.
HTML ist ja nichts weiter als spezielles XML. Anders ausgedrück kannst du ein HTML
Dokument auch als ein XML betrachten. Es gibt zwar spezielle Tags, die sogenannten
standalone-Tags, die kein schließendes Tag haben, aber im Grunde ist es XML.
Vor diesem Hintergrund könntest du das HTML-Dokument auch mit SAX parsen.
SAX ist eine API mit der du Event gesteuert ein XML-Dokument parsen kannst.
Also zum Beispiel:
Wenn ein Element mit dem Namen 'title' gefunden wird mache folgendes ...

Denk mal drüber nach :wink:
 

AlArenal

Top Contributor
@rené:

Das geht tatsächlich? Das wäre ja ganz cool, weil ich derzeit nämlich das Problem habe das HTML aus einem CMS zu parsen und interne Links mit einem zusätzlichen Parameter zu versehen. Wenn das mittels XML-Parsing ginge, würde das einiges vereinfachen...
 

odysseus

Bekanntes Mitglied
ich würde das gerne ohne util.regex lösen, weil es diese Pattern erst ab java 1.4. gibt.
andererseits komm ich vielleicht nicht drum rum, ich hab mir die syntax er regulären ausdrücke mal angesehen, und hatte erst mal keinen plan, bis ich da rausfinde wie ich eine beliebige anzahl von beliebigen zeichen definiere kann dauern, gewöhnlich ein "*". hier scheint es eher ".*" sowas zu sein...

ist es denn aussichtlos ohne pattern ?
das ist der php-code den ich gern in java hätte. liest wetterdaten auf wetter.com aus.

Code:
preg_match('/alt="Webcam für (.+?) \(Deutschland\) zeigen"/is',$buffer,$matches);
            $stadt = $matches[1];

            preg_match('/<td width="66"><span class="tabHeadline">Temp.:<\/span><\/td>(.+?)<td width="53" align="right"><span class="tabBody">(.+?)<\/span><\/td>(.+?)<td width="30" align="right"><span class="tabBody">&C<\/span><\/td>/is',$buffer,$matches);
            $akt_temp = $matches[2];

            preg_match('/<table width="200"(.+?)<td><span class="tabHeadline">max. Temp.:<\/span><\/td>(.+?)<td align="center" colspan="2"><span class="tabBody">(.+?) &C<\/span><\/td>/is', $buffer, $matches);
            $max_temp = $matches[3];

            preg_match('/<table width="200"(.+?)<td><span class="tabHeadline">min. Temp:<\/span><\/td>(.+?)<td align="center" colspan="2"><span class="tabBody">(.+?) &C<\/span><\/td>/is', $buffer, $matches);
            $min_temp = $matches[3];
         
            preg_match('/<table width="200"(.+?)<td><span class="tabHeadline">Niederschlag\?<\/span><\/td>(.+?)<td align="center" colspan="2"><span class="tabBody">(.+?) %<\/span><\/td>/is', $buffer, $matches);
            $niederschlag = $matches[3];


ich habs schon hinbekommen, aber ich hangel mich in dem quelltext so hässlich von zeichen zu zeichen, das es erstens sehr langsam ist, zweitens nicht lange funktionieren wird, wenn wetter.com mal was dran ändert...
 

AlArenal

Top Contributor
odysseus hat gesagt.:
ich hab mir die syntax er regulären ausdrücke mal angesehen, und hatte erst mal keinen plan, bis ich da rausfinde wie ich eine beliebige anzahl von beliebigen zeichen definiere kann dauern, gewöhnlich ein "*". hier scheint es eher ".*" sowas zu sein...

Zeig mir mal nen regulären Ausdruck, wo die Syntax anders ist! ".*" ist nunmal der Ausdruck für eine beliebige Menge (inkl. 0) von beliebigen Zeichen (auch Sonderzeichen).
 

odysseus

Bekanntes Mitglied
AlArenal hat gesagt.:
".*" ist nunmal der Ausdruck für eine beliebige Menge (inkl. 0) von beliebigen Zeichen (auch Sonderzeichen).

kenn reguläre Ausdrücke bisher nur aus dem filesystem beim suchen nach dateien oder ordnern...
aber in java kannte ich es bisher nicht..
 

odysseus

Bekanntes Mitglied
@alarenal:
kannst Du mal codieren wie das Pattern aussehen müsste mit dem ich die temperatur oder so auslesen und wie ich die Stelle dann abfrage ?
Code:
Pattern p = Pattern.compile("???");
Matcher m = p.matcher(quelltext);

//Temperatur ausgeben
 

odysseus

Bekanntes Mitglied
der code liefert "no match found"

warum ? "middle" ist doch teil des strings ...

Code:
Pattern p = Pattern.compile(".*middle.*");
		Matcher m = p.matcher("<td valign=\"middle\" height=\"18\" align=\"right\" bgcolor=\"#d9d9d9\"><span class=\"txtb\">");
		System.out.println("Pattern Treffer: " + m.group());
edit:
der matcher liefert true, aber group() liefert "no match"
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Java Website Stock Bot Allgemeine Java-Themen 3
K Inhalte Parsen von Website Allgemeine Java-Themen 15
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
J Website mit Kundenbereich Allgemeine Java-Themen 1
E Java Website Login Allgemeine Java-Themen 2
J4n5chmiddi Methoden Website-URL im Browser öffnen nach erfolgreicher Basisauthentifizierung in Java Allgemeine Java-Themen 12
M Website Quelltext mit Java einlesen Allgemeine Java-Themen 10
H HTTP Website-Login Allgemeine Java-Themen 5
Scream_ilias Auf einer Website die anmeldedaten eingeben Allgemeine Java-Themen 9
J Hotel Zimmer Buchungen Website Allgemeine Java-Themen 4
G website programmatisch browsen Allgemeine Java-Themen 2
D Java auf Webserver Website möglich Allgemeine Java-Themen 7
A Website zur Ausnahmeliste hinzufügen (Mac) Allgemeine Java-Themen 3
Javafan01 Website in Java aufrufen Allgemeine Java-Themen 1
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
Developer_X Website HTML Code von HTTPS URL laden Allgemeine Java-Themen 0
C php-Website mit Proxy aufrufen Allgemeine Java-Themen 6
L Seite einer Partner Website neu laden Allgemeine Java-Themen 1
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
KeVoZ_ JSoup - Website Inhalt/Element mit String vergleichen Allgemeine Java-Themen 2
K Socket SocketIO Website nicht erreichbar! :( Allgemeine Java-Themen 1
L Login auf website per Java Allgemeine Java-Themen 13
Ananaskirsche Website mit Browser-Check aufrufen Allgemeine Java-Themen 8
K Auf einer Website nach einem String suchen Allgemeine Java-Themen 5
I HTML einer Website auslesen liefert nur head Allgemeine Java-Themen 6
G Daten aus Website auslesen Allgemeine Java-Themen 7
N Input/Output Website Text auslesen und bestimmte Zeilen wiedergeben Allgemeine Java-Themen 4
S Interaktion mit einer website (website als Objekt?) Allgemeine Java-Themen 3
I Inhalt einer Website auslesen Allgemeine Java-Themen 6
K Website in Programm einbinden und auslesen Allgemeine Java-Themen 2
S Buch oder Website mit genialen Algorithmen..? Allgemeine Java-Themen 1
U mit HTMLunit auf Website einloggen - Formname nicht vorhanden Allgemeine Java-Themen 5
C HTTP OnClick auf Website in Java simulieren Allgemeine Java-Themen 2
N Input/Output Bild von WebSite laden? Allgemeine Java-Themen 3
S Website verbinden Allgemeine Java-Themen 5
K XML Quelltext Website einlesen?! Allgemeine Java-Themen 3
P Applet java 1.7 in Website einbinden ? Allgemeine Java-Themen 7
Q Website auslesen->javascriptauswahl tätigen Allgemeine Java-Themen 6
T Java in Website einbinden klappt i-wie nicht Allgemeine Java-Themen 13
N iText-Nutzung (Version 2.1.7) in kommerzieller Website Allgemeine Java-Themen 8
C Script für Website mit Objekte Ausblenden Allgemeine Java-Themen 3
S Website rendern? Allgemeine Java-Themen 8
C Login auf Website mit Cookies Allgemeine Java-Themen 3
E Performance website download Allgemeine Java-Themen 13
L Einloggen auf Website Allgemeine Java-Themen 7
T Website-Login via Java Allgemeine Java-Themen 22
I Irre Website-Wie macht man sowas? Allgemeine Java-Themen 6
L javaformular auf website (eingabe per email zusenden) Allgemeine Java-Themen 3
L java programm läßt sich von website nicht starten. Allgemeine Java-Themen 6
G Applikation in Website einbinden Allgemeine Java-Themen 3
T Datei auf WebSite lesen Allgemeine Java-Themen 4
P Mit Java auf einer Website einloggen Allgemeine Java-Themen 6
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
Ernesto95 HTTP Mit JavaScript erzeugte dynamische Webseite auslesen und nach einem Schlüsselwort durchsuchen Allgemeine Java-Themen 6
districon Programm zum Durchsuchen von (Ebay-)Artikeln Allgemeine Java-Themen 1
Kirby.exe Filename nach bestimmtem Pattern durchsuchen Allgemeine Java-Themen 5
S Wörterliste nach Wörtern mit u durchsuchen und diese auf der Konsole ausgeben lassen Allgemeine Java-Themen 33
T Methoden Methode zum durchsuchen einer ArrayList Allgemeine Java-Themen 8
T Textarea nach nur 1 wort durchsuchen Allgemeine Java-Themen 3
F String nach Schlüsselwörtern durchsuchen und ganze Zeile ausgeben Allgemeine Java-Themen 4
M Fasta nach Mustern durchsuchen dauert zu lange Allgemeine Java-Themen 2
R HTML Tabelle durchsuchen Allgemeine Java-Themen 3
G String durchsuchen Allgemeine Java-Themen 5
S String mit Matcher.find durchsuchen und ausgeben Allgemeine Java-Themen 7
T Package durchsuchen Allgemeine Java-Themen 11
A Excel nach bestimmten Inhalt durchsuchen Allgemeine Java-Themen 8
P Ordner und Unterordner rückwärts durchsuchen Allgemeine Java-Themen 3
P Sinnfragen, um eine riesige Verzeichnisstruktur zu durchsuchen und zu verarbeiten Allgemeine Java-Themen 20
B Swing In JAR Ordner durchsuchen Allgemeine Java-Themen 2
P Ordnerstruktur nach .js-Files durchsuchen Allgemeine Java-Themen 2
S HTML-Quelltext nach bestimmter Stelle durchsuchen Allgemeine Java-Themen 2
K [Refactoring] ClassLoader Verzeichnis durchsuchen lassen Allgemeine Java-Themen 7
windl Durchsuchen eines Verzeichnisbaums Allgemeine Java-Themen 3
C C-ähnlichen Code nach speziellen Informationen durchsuchen Allgemeine Java-Themen 2
G Code nach Schleifen und Verzweigungen durchsuchen Allgemeine Java-Themen 6
A Text via RegEx durchsuchen und teile ersetzten Allgemeine Java-Themen 5
E ordner rekursiv durchsuchen Allgemeine Java-Themen 6
M Große Datei mit Regex durchsuchen Allgemeine Java-Themen 4
C Spielfeld nach Treffern durchsuchen Allgemeine Java-Themen 4
F Char-Array nach einem Wort durchsuchen! Allgemeine Java-Themen 11
P String nach ENTER durchsuchen Allgemeine Java-Themen 6
W return Collection mit schleife durchsuchen Allgemeine Java-Themen 10
L Textdatei nach Wörter durchsuchen Allgemeine Java-Themen 3
T Array durchsuchen - aber richtig Allgemeine Java-Themen 7
O PDF-Dateien bearbeiten/durchsuchen Allgemeine Java-Themen 3
B Verzeichnis durchsuchen geschwindigkeit optimieren Allgemeine Java-Themen 6
C Reguläre Ausdrücke, String rückwärts durchsuchen Allgemeine Java-Themen 6
hdi text durchsuchen -> satzzeichen entfernen Allgemeine Java-Themen 5
T Webseiten durchsuchen und Bilder downloaden Allgemeine Java-Themen 4
V Object durchsuchen Allgemeine Java-Themen 4
G Am schnellsten Datei durchsuchen? Allgemeine Java-Themen 3
G Datei durchsuchen, lange Laufzeit! Allgemeine Java-Themen 2
C Dateien auf Festplatte speichern durch "Durchsuchen-But Allgemeine Java-Themen 3
A String nach Characterfolge durchsuchen. Allgemeine Java-Themen 3
M Ordner nach neuester Datei durchsuchen Allgemeine Java-Themen 4
E Quelltext nach Datentypen durchsuchen Allgemeine Java-Themen 10
M Problem mit Durchsuchen von BufferedImage Allgemeine Java-Themen 10
E String durchsuchen Allgemeine Java-Themen 7
A Alle Ordner durchsuchen und Dateien finden Allgemeine Java-Themen 2
F Alle Files im Ordner nach Dateinamen durchsuchen Allgemeine Java-Themen 28

Ähnliche Java Themen

Neue Themen


Oben