Webseiten mittels Java auslesen

7bkahnt

Aktives Mitglied
Hallo,
ich würde mir gern den Inhalt einer Website auslesen lassen und diese dann entsprechend auswerten. Ziel des ganzen ist es z.B. die Wettquoten der Bundesliga auf bwin auszulesen und aufzulisten, damit ich nicht immer die bwin-Seite aufrufen und mich entsprechend zur Bundesliga navigieren muss. Kurzum Spielerei ^^.
Eigentlich müsste es ja mit folgendem Code funktionieren:

Java:
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
 
public class WebsiteReader {
    final String[] KEYWORDS = {"."};
    public static void main(String[] args) {
    	long time = System.currentTimeMillis();
        new WebsiteReader().doIt("https://www.bwin.com/de/betViewIframe.aspx?SportID=4&bv=bb&selectedLeagues=0");
        System.out.println(System.currentTimeMillis() - time);
    }
 
 
    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;
            File file = new File("temp.txt");
            FileOutputStream ausgabe = null;
			try {
				ausgabe = new FileOutputStream(file);
			} catch (FileNotFoundException e1) {
				e1.printStackTrace();
			}
            DataOutputStream raus = new DataOutputStream(ausgabe);
            try {
                while ((line = br.readLine()) != null) {
                    if (checkKeyWords(line)) {
                    	try {
            	            raus.writeBytes(line+"\n");
            	        }
            	        catch (IOException e) {
            	        }
                        System.out.println(line);
                    }
                }
 
            } catch (IOException e2) {
                // TODO Auto-generated catch block
                e2.printStackTrace();
            }
 
        }
 
    }
 
  
    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;
    }
}

Funktioniert bei vielen Seiten auch. Ich bekomme in einer temp.txt datei den fast kompletten Quellcode der bwin Seite zusehen. Aber ich sehe keine Quoten im Quelltext, der mir geoutprintleintelt wird :) .
Wenn ich allerdings auf der bwin-Seite rechtsklick-->Framequelltext anzeigen klicke, sehe ich diese Quoten im Quelltext.
Mir ist aufgefallen, dass die url als Endung aspx hat. Muss ich da irgendetwas beachten?

Wäre echt dankbar für nen Tipp.

Grüsse
 
Zuletzt bearbeitet:

darkeye2

Bekanntes Mitglied
wenn es dir darum geht, den quellcode (html ausgaben) zu kriegen, geht das so:

Java:
	private String getStrFromUrl(String surl){
		final String userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12";
		try {
			URL url = new URL(surl);
	        URLConnection conn = url.openConnection();
	        conn.addRequestProperty("User-Agent", userAgent);
	        
	        BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
			String str, str1; 
			str = new String();
			while ((str1 = in.readLine()) != null) {
	            str = str + str1;
	        } 
	        in.close(); 
	        return str;
			} catch (MalformedURLException e) 
			{	System.out.println( e.getMessage());
			} 
			catch (IOException e) 
			{	System.out.println( e.getMessage());
			} 
	}

alles, was per php, sonstige serverseitigen scripte und html ausgegeben wird kannst du so auslesen, sollte js oder ähnliches da sein, kriegst auch im quellcode halt die js daten, das gleiche gilt für css.

Hoffe es hilft dir.
 
Zuletzt bearbeitet:

7bkahnt

Aktives Mitglied
Super Sache, damit bekomme ich alles zu Gesicht! Danke!
Dauert nur recht lang ne. An die 15s.
Jetzt geht es nur noch ans auswerten^^. Das ist aber recht aufwendig ne? Würde jetzt mittels test.replace(....) alles einzeln auftrotteln und rausfiltern...

grüsse
 

darkeye2

Bekanntes Mitglied
also die dauer hängt von der größe der seite ab ... wenn jemand die methode optimieren möchte kann er mir gern bescheid geben^^ würde mich auch freuen, die hab ich mal vor längerer zeit gebraucht, für ein programm.

Beim auswerten kann ich auch net richtig helfen, ich hab immer nach bestimmten wörter gesucht, position bestimmt und dort den string abgeschnitten, dann die entsprechenden paar bytes gelesen und dann das nächte schlüsselwort gesucht ... geht recht gut, musst halt wissen, wie die seite aufgebaut ist, aber dafür hast ja den code^^
 

madboy

Top Contributor
wenn jemand die methode optimieren möchte kann er mir gern bescheid geben^^ würde mich auch freuen, die hab ich mal vor längerer zeit gebraucht, für ein programm.

Vorschlag (in Schleifen Strings mit + verketten ist keine gute Idee/langsam):
Java:
   private String getStrFromUrl(String surl) {
      final String userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12";
      try {
         URL url = new URL(surl);
         URLConnection conn = url.openConnection();
         conn.addRequestProperty("User-Agent", userAgent);

         BufferedReader in = new BufferedReader(new InputStreamReader(
               conn.getInputStream()));
         String str;
         StringBuilder builder = new StringBuilder(1024);
         while ((str = in.readLine()) != null) {
            builder.append(str);
            builder.append("\n"); //damit es hinterher auch so aussieht wie vorher ;-) 
         }
         in.close();
         return builder.toString();
      } catch (MalformedURLException e) {
         System.out.println(e.getMessage());
      } catch (IOException e) {
         System.out.println(e.getMessage());
      }
   }
 

7bkahnt

Aktives Mitglied
Super Sache eigentlich. Habe mir jetz alle Spiele auflisten lassen.

Mir ist da nur ein Problem aufgefallen, dass bwin anscheinend die Seiten ändert.
Beispielweise wollte ich mir mal alle Quoten vom Fussball aufrufen lassen. Das ist mir am ersten Tag mit dieser Seite gelungen:
https://www.bwin.com/de/betviewifra...s=133&bv=bb&ShowDays=2147483647&currentPage=1

Heute seh ich, dass mir mit dem Link nicht mehr alle Spiele angezeigt werden (2 3 Spiele weniger)
bis ich gesehn habe dass sich die Adresse des Frames geändert hat:
https://www.bwin.com/de/betviewifra...s=168&bv=bb&ShowDays=2147483647&currentPage=1

Habt ihr da einen Rat bzw. Erfahrung?^^ Hab das ganze auch mal bei bet365.com probiert, weil die manchmal bessere Quoten haben, aber da kann ich ja gleich gar nichts rausfiltern... Da komme ich immer nur auf JavaScript-Methoden.... :-(
Scheint doch schwerer als gedacht zu werden...

grüsse und schönes we ;-)
 

ARadauer

Top Contributor
Parsen von HTML Seiten und auslesen der Daten.... schau dir jtidy.sourceforge.net/ an. Damit kannst du dir aus dem Source Code einen DOM Baum geben lassen. Da drin kann man relativ sauber durch navigigieren und dinge auslesen.

Ich denke jedoch das bwin dir das nciht so leicht machen wird, da die sicher viel mit ajax nachlesen gehen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
B Erste Schritte Script für Webseiten-Prozesse entwickeln Allgemeine Java-Themen 9
C Webseiten Programm problem Allgemeine Java-Themen 5
K Dynamische Webseiten auslesen Allgemeine Java-Themen 6
U Webseiten Inhalt auslesen... Allgemeine Java-Themen 7
S Excel -> Webseiten Formular -> Excel Allgemeine Java-Themen 5
J Liefert new URL(String) gecachte Webseiten? Allgemeine Java-Themen 15
H Webseiten aus Swing Allgemeine Java-Themen 4
T Webseiten durchsuchen und Bilder downloaden Allgemeine Java-Themen 4
S Ganz übler Anfänger - Webseiten mit Java Allgemeine Java-Themen 3
P Mit Java Programm auf Webseiten Browsen! Allgemeine Java-Themen 10
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
N Value Wert aus HTML-Button mittels thymeleaf spring an java übergeben Allgemeine Java-Themen 2
N Lottowebsite programmieren mittels Java, HTML,.... Allgemeine Java-Themen 7
W PDFs signieren mittels IText / Lowagie Allgemeine Java-Themen 0
Zrebna Möglichkeit regelmäßige indentation mittels/innerhalb Stringbuilder Allgemeine Java-Themen 14
J RotSchwarzBaum: Löschen mittels insert-Methode Allgemeine Java-Themen 20
LimDul Mittels Streams aus Strings A B C den String A, B und C machen Allgemeine Java-Themen 12
X Brüche kürzen mittels Methoden und ggT Allgemeine Java-Themen 15
D HTTP Http-Link mittels GUI schreiben Allgemeine Java-Themen 5
B Java Sternchen ausgeben mittels Rekursion Allgemeine Java-Themen 3
J GUI-Einstellungen mittels Preferences Allgemeine Java-Themen 6
Todesbote JFileChooser im Vordergrund (*.jar wird mittels shell_exec in PHP aufgerufen) Allgemeine Java-Themen 1
E Videosequenz mittels Java aus Video schneiden Allgemeine Java-Themen 10
B Ordner öffnen mittels Java in Linux-Umgebung Allgemeine Java-Themen 7
I Webseite auslesen (welche mittels Javascript Inhalt einbindet) Allgemeine Java-Themen 4
T HTML Tag Position mittels Pattern ermitteln Allgemeine Java-Themen 7
RySa Variablenname mittels Reflexions rausbekommen (als String) ? Allgemeine Java-Themen 9
U Classpath DLLs mittels System.load() laden: Allgemeine Java-Themen 6
T Wie rufe ich mittels String-Inhalts eine Methode auf? Allgemeine Java-Themen 3
T Exif mittels Java auslesen Allgemeine Java-Themen 14
A Sudoku mittels Backtracking Problem Allgemeine Java-Themen 6
H Zwei verschiedene Dateien mittels einem Binärstream übertragen? Allgemeine Java-Themen 13
dunhillone Mittels Annotations Methoden "erweitern"? Allgemeine Java-Themen 11
S Mittels eines Applets Bilder generieren die in einer Webseite angezeigt werden..? Allgemeine Java-Themen 8
X String zerlegen mittels regulärem Ausdruck Allgemeine Java-Themen 31
O Programm mittels Java installieren Allgemeine Java-Themen 15
S Array-Sort mittels Binärsuche Allgemeine Java-Themen 2
J Setter mittels invoice aufrufen Allgemeine Java-Themen 4
S Eingabeprüfung mittels Regexp Allgemeine Java-Themen 5
J Objekt in Datei speichern mittels Streams Allgemeine Java-Themen 6
D Einfaches Nutzen von Plugins mittels generischer Methode Allgemeine Java-Themen 3
E Aus mehreren PDFs eines machen, zusammenfügen mittels iText Allgemeine Java-Themen 1
G Graph mittels Punkte erstellen Allgemeine Java-Themen 27
M Problem bei PDF-Anzeige mittels Acrobat Viewer Bean Allgemeine Java-Themen 2
G HTML Code aus String mittels REGEX entfernen Allgemeine Java-Themen 2
spacegaier Performanceproblem beim Einlesen aus Datei mittels Threads Allgemeine Java-Themen 23
G Screenshot mittels robot ausführen Allgemeine Java-Themen 4
B Html Formulare mittels Java automatisch senden Allgemeine Java-Themen 5
E import mittels Eclipse Allgemeine Java-Themen 3
F mittels Collection<A> an A.class kommen? Allgemeine Java-Themen 7
T IF Abfrage + YES_NO Option mittels JOptionPane Allgemeine Java-Themen 3
F Zugriff mittels getObject() oder this.object ? Allgemeine Java-Themen 8
J Tonbalance mittels JMF regeln Allgemeine Java-Themen 3
G Font mittels ClassLoader in .jar wirft NotFoundException Allgemeine Java-Themen 10
R Interface mittels Reflection implementieren Allgemeine Java-Themen 8
G eigener logger mittels classe (dynamische logfilename) log4j Allgemeine Java-Themen 15
K Mittels Generics eine Methode verallgemeinern Allgemeine Java-Themen 2
A FTPS bzw. FTP over SSL mittels Java Allgemeine Java-Themen 9
Y komprimierung mittels Huffman-Algorithmus, bit-shifting. Allgemeine Java-Themen 2
G mysql datum umwandeln mittels jsp Allgemeine Java-Themen 10
F Hilfe: Adjazenzmatrix mittels JUnit testen. Allgemeine Java-Themen 2
Natorion Erkennen ob das Programm mittels Jar-Datei oder class . Allgemeine Java-Themen 9
P E-Mails mittels POP3 abrufen Allgemeine Java-Themen 2
S mail von server mittels mailapi löschen Allgemeine Java-Themen 2
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14

Ähnliche Java Themen

Neue Themen


Oben