Daten aus HTML Seite holen

Status
Nicht offen für weitere Antworten.

BeRseRkeR

Mitglied
Hallo,

ich hoffe sehr das mir hier jemand helfen kann
also ich möchte von einer HTML seite daten holen aber eben nur bestimmte
das ganze soll so ablaufen, der funktion soll eine nummer (bei jedem Objekt unterschiedlich) übergeben werden
an die standard url(die bei allen Objekten gleich ist) wird diese nummer rangehängt, beides zusammen bildet also die ziel url, und von dieser Html Seite sollen dann 2 sachen gelesen werden und wieder zurückgegeben werden aber eben nur diese 2 sachen
hätte da jemand vielleicht nen ansatz?
danke für jede hilfe :)
 

Pappenheimer++

Bekanntes Mitglied
Das mit den Nummern hab ich nicht ganz verstanden, aber nen HTTP-get raushauen und dann nen bisschen mit Regex auswerten ist nicht sehr schwer !
 

BeRseRkeR

Mitglied
ich kann ja mal posten was ich schon habe

Code:
import java.io.*;
import java.net.*;


    public string getBildUrl (String url)
    {   
         try
        {   
            URL url=new URL(url);
            InputStream in=url.openStream();
            int b;
            FileOutputStream out=new FileOutputStream(html.txt);
            while (true)
            {   b=in.read();
                if (b==-1) break;
                out.write(b);
            }
            in.close();
            out.close();
        }
        catch (Exception e) { System.out.println(e); }
    }
    return s;
}

also ich übergebe die url und speichere dann den text in der html.txt so dann soll der teil kommen wo aus der html.txt das rausgeholt werden soll was ich möchte und dann soll das mit return s zurückgegeben werden
so wie krieg ich jetz aus der html.txt das was ich haben will ?
mit Regex kann ich leider nichts anfangen
 

BeRseRkeR

Mitglied
so hab jetz mal im internet nach regex gesucht
und meinen code verändert
ist das jetz richtig so ?
readStream ist ne extra funktion die den inputstream zum string macht da matcher keine inputstreams mag

Code:
public static String getBildUrl(String url)
	
	{
	String s1 = new String("");
	try
	{ 
		   
           URL urlname=new URL(url);
           InputStream in=urlname.openStream();
           String s2 = new String(readStream(in));
           //System.out.printf("eine url %s %n", url);  
           //System.out.printf("eine url %s %n", s2);
           Pattern p = Pattern.compile ("http://www.seite.de/images/cover_images/", Pattern.CASE_INSENSITIVE);
           Matcher m = p.matcher (s2);
           String s3 = new String(m.group());

           s1 = s3;
           in.close();
		  
           }
	
			catch (Exception e) { System.out.println(e);}
			{
				return s1;
			}
			
	}

/edit

die beiden printf waren dafür da um zu gucken ob er auch die richtige url benutzt und die richtige html liest
das tut er beides, allerdings kommt java.lang.IllegalStateException: No match found
er findet also keine übereinstimmung

ich poste mal einen teil der html datei um zu verdeutlichen was ich rausfiltern möchte

Code:
<tr><td><div align="center">[img]http://www.seite.de/images/cover_images/awpl.jpg[/img]</div></td></tr>
                    <tr><td>[img]/images/transparent_spacer.gif[/img]</td></tr>

http://www.seite.de/images/cover_images/awpl.jpg <-- nur das möchte ich

wie muss ich pattern.compile verändern um zu erreichen das er das findet ?
 
B

Beni

Gast
- m.find() aufrufen um den Matcher überhaupt arbeiten zu lassen.
- Punkte mit "\\" maskieren, ein einzelner Punkt bedeutet "jedes Zeichen".
- Auch eine Schlussbedingung, wie etwa ", definieren. Ansonsten bekommst du zuviel zurück.
- Und was sollen diese "new String( x )"? Ein String ist ein String, den muss man nicht nochmal verpacken.
 

BeRseRkeR

Mitglied
vielen vielen dank an Beni für seine Hilfe
funzt jetz so wie es sollte :D

Code:
public static String getBildUrl(String url)
	
	{
	String s1 = "";
	try
	{ 
		   
           URL urlname=new URL(url);
           InputStream in=urlname.openStream();
           String s2 = readStream(in);
           System.out.printf("eine url %s %n", url);
           //System.out.printf("eine url %s %n", s2);
           Pattern p = Pattern.compile ("http://ieeexplore\\.ieee\\.org(/|//)images/cover_images/.*\\.((png)|(gif)(jpg))", Pattern.CASE_INSENSITIVE);
           Matcher m = p.matcher (s2);
           m.find();
           String s3 = m.group();

           s1 = s3;
           in.close();
		  
           }
	
			catch (Exception e) { System.out.println(e);}
			{
				return s1;
			}
			
	}
 

BeRseRkeR

Mitglied
muss doch nochmal nerven *g*
und zwar steht jetzt unter anderem folgendes im ausgelesenen quelltext


Code:
<td class="labelName">Fachgebiet</td><td class="labelValue">[url="/content/?Subject=Medicine"]Medicine[/url]
[url="/content/?Subject=Medicine+%26+Public+Health"]Medicine & Public Health[/url]
[url="/content/?Subject=Imaging+%2f+Radiology"]Imaging / Radiology[/url]
[url="/content/?Subject=Gastroenterology"]Gastroenterology[/url] and [url="/content/?Subject=Hepatology"]Hepatology[/url]</td>
</tr><tr>
<td class="labelName">SpringerLink Date</td><td class="labelValue">Freitag, 5. April 2002</td>

gefunden werden soll jetz :
Medicine
Medicine & Public Health
Imaging / Radiology
Gastroenterology
Hepatology

so hab jetz folgendes geschrieben


Code:
Pattern p = Pattern.compile ("<a href=\"/content/\\?Subject=.*?\">(.*?)</a>", Pattern.CASE_INSENSITIVE);
           Matcher m = p.matcher (s2);
           m.find();
           String s3 = m.group(1);
           s1 = s3;


funktioniert soweit auch also er findet das richtige, problem ist nur , in s1 steht am ende nur Medicine also nur das erste was er gefunden hat, es soll aber logischerweise alles drin stehen
wie sollte ich das jetzt modifizieren um alles sachen am ende im string stehen zu haben ?
 

BeRseRkeR

Mitglied
hab noch ne frage und zwar wie geht das wenn der suchbegriff sich aus meheren sachen zusammensetzt die untereinander stehen
Beispiel:
Code:
<span class="verdana11Blue">[b]Description[/b]</span>



[b]

also kriegt man es irgendwie hin das für regex alles quasi in einer zeile steht?
weil bei meinem konkreten problem weiss ich vorher nicht wieviele neue zeilen oder leerzeilen es geben könnte :/
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M HTML Seite die Daten in JavaApplet dynamisch verarbeiten Java Basics - Anfänger-Themen 2
G Daten aus HTML-Formular an Java-Klasse weiterreichen Java Basics - Anfänger-Themen 7
T Unvollständige Daten in der TableView Java Basics - Anfänger-Themen 8
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Daten in Echtzeit übernehmen Java Basics - Anfänger-Themen 5
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A Literale für primitive Daten Typen Java Basics - Anfänger-Themen 4
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D Sportwetten Daten Atomatisch analysieren um optimale Strategie zu erhalten Java Basics - Anfänger-Themen 6
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Minesweeper - Daten Java Basics - Anfänger-Themen 46
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
WPS1000 Input/Output Wie aktiviere ich den Daten Transfer von der RS232 in meine Java Applikation Java Basics - Anfänger-Themen 2
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
S Daten lesen und speichern Java Basics - Anfänger-Themen 26
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
H Passwortmanager, Sicherheit der Daten Java Basics - Anfänger-Themen 12
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
M Erste Schritte Speichern von mehreren Daten Java Basics - Anfänger-Themen 3
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
F Daten von Thread an den aufrufenden zurückgeben Java Basics - Anfänger-Themen 22
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
P Methoden ausgelesene (CSV-) Daten in Liste einer anderen Klasse einlesen Java Basics - Anfänger-Themen 0
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
F Http Post von mehreren Daten Java Basics - Anfänger-Themen 5
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
W Best Practice problemabhängige Persistentmachung von Daten Java Basics - Anfänger-Themen 6
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
N Daten/Formular per POST an Firefox/Browser senden Java Basics - Anfänger-Themen 7
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
V Einlesen von Daten Java Basics - Anfänger-Themen 8
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
J Daten im Programm speichern Java Basics - Anfänger-Themen 14
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
O Probleme mit CSV Daten Java Basics - Anfänger-Themen 10
M Arrays: Trennung von Daten und Darstellung Java Basics - Anfänger-Themen 1
S Daten aus Array in Klasse übertragen Java Basics - Anfänger-Themen 12
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
R Daten via Post an php Script senden Java Basics - Anfänger-Themen 1
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
W (XML/XSL) Daten aus Eclipse in eine Klasse Laden. Java Basics - Anfänger-Themen 1
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
D Daten von einem int in einen string Java Basics - Anfänger-Themen 5
L Daten aus Array Feld löschen Java Basics - Anfänger-Themen 2
T Input/Output Daten/Objekte einfach speichern Java Basics - Anfänger-Themen 5
IngoF GUI mit Thread Daten austauschen. Java Basics - Anfänger-Themen 6
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
fLooojava Daten im selben Netzwerk an IP Java Basics - Anfänger-Themen 1
M Junit Tests durchführen, die eine Verbindung zu einer Daten erfordern Java Basics - Anfänger-Themen 3
K HashMap mit Daten aus ArrayList befüllen Java Basics - Anfänger-Themen 14
P Daten auslesen und in CSV speichern Java Basics - Anfänger-Themen 6
J Daten aus zweiter Klasse importieren Java Basics - Anfänger-Themen 33
C Daten speichern und laden Java Basics - Anfänger-Themen 6
S Je nach erhaltene Daten unterschiedlich reagieren (Design Pattern?) Java Basics - Anfänger-Themen 3
J Daten von einer PHP Datei ablesen Java Basics - Anfänger-Themen 1
B Klassen Zugriff auf Daten der Child-Klasse Java Basics - Anfänger-Themen 9
K Daten (im Sinne von Datum) aus Webseiten extrahieren Java Basics - Anfänger-Themen 6
S Erste Schritte Tage zwischen 2 Daten berechnen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen


Oben