getInputStream() - Ihr Browser ist veraltet

Diskutiere getInputStream() - Ihr Browser ist veraltet im Netzwerkprogrammierung Forum; Hallo zusammen, ich möchte gerne den Quellcode der Seite https://www.leo.org/englisch-deutsch auslesen, dazu habe ich folgenden Code public...

  1. ZTirom
    ZTirom Neues Mitglied
    Hallo zusammen,

    ich möchte gerne den Quellcode der Seite
    https://www.leo.org/englisch-deutsch
    auslesen, dazu habe ich folgenden Code

    public Connector(String surl) {

    try {

    url = new URL(surl);

    is = url.openStream();

    scan = new Scanner(is);

    while(scan.hasNextLine()) {
    System.out.println(scan.nextLine());
    }


    } catch (MalformedURLException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    }
    }

    Dann kommt folgende Fehlermeldung:

    java.io.IOException: Server returned HTTP response code: 403 for URL: https://www.leo.org/englisch-deutsch/
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at java.net.URL.openStream(Unknown Source)
    at de.html.connection.Connector.<init>(Connector.java:24)
    at de.html.GUI.actionPerformed(GUI.java:57)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

    Dies konnte ich bereits beheben mit folgendem Code:

    public Connector(String surl) {

    try {

    url = new URL(surl);

    con = url.openConnection();
    con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0");

    is = con.getInputStream();

    scan = new Scanner(is);

    while(scan.hasNextLine()) {
    System.out.println(scan.nextLine());
    }


    } catch (MalformedURLException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    Es funktioniert also alles super. Wenn ich nun aber z.B.

    https://dict.leo.org/englisch-deutsch/Hallo

    aufrufe, kommt folgende Meldung, die mit dieser Zeile beginnt:

    Ihr Browser ist veraltet, daher kann es zu Einschr&#xE4;nkungen in der Funktionalit&#xE4;t kommen.</p><p><small>Die reine W&#xF6;rterbuchsuche wird im InternetExplorer in Version 8 und 9 noch unterst&#xFC;tzt (ohne Gew&#xE4;hr auf funktionierende Zusatzdienste wie Aussprache, Flexionstabellen etc.). Siehe dazu auch die offizielle Ank&#xFC;ndigung durch <a href="https://www.microsoft.com/en-us/WindowsForBusiness/End-of-IE-support">Microsoft</a> zum Support-Ende der verschiedenen InternetExplorer-Versionen.</small></p></span></div></div><![endif]--><!--[if lte IE 7]><div id="browser-support-none" class=""><div title="" class="alert section bg-red "><span><i role="img" class="icon icon_alert-octagon icon_size_24 white ">&#xA0;</i></span><span>Bitte aktualisieren Sie Ihren Browser - Ihr Browser wird nicht mehr unterst&#xFC;tzt.</span></div></div><![endif]--><noscript><div title="" class="alert m-bottom-medium bg-blue "><span><i role="img" class="icon icon_information icon_size_24 darkgray "> </i></span><span>Aktivieren Sie JavaScript für mehr Features und höhere Geschwindigkeit beim Abfragen.

    Nun ist meine Frage, wieso diese Meldung kommt und wie ich sie beheben kann. Meines Wissens nach ist der User-Agent der Neuste!?

    Ich hoffe auf schnelle Antworten

    Lg Moritz
     
  2. Thallius
    Thallius Bekanntes Mitglied
    Sagmal Leute überlegt ihr eigentlich auch manchmal was ihr da macht?

    Urheberrecht
    Sämtliche Rechte an der im Rahmen dieses Online-Angebots entwickelten Software, den zugrunde liegenden Datenbanken und sonstigen Inhalten liegen bei der LEO GmbH, soweit nicht ausdrücklich ein anderer Urheber oder Rechtsinhaber genannt wird. Jedwede Verwendung der Software, Daten oder sonstigen Inhalte außer in der Form, wie sie unter leo.org angeboten und ermöglicht wird, ist nicht erlaubt. Es ist insbesondere nicht gestattet, jedwede Art von Inhalten per Script oder auf andere Weise automatisiert abzufragen.
     
  3. AndyJ
    AndyJ Mitglied
    Setz' doch einfach die Header eines aktuellen Browsers.

    Cheers,
    Andy
     
  4. Meniskusschaden
    Meniskusschaden Bekanntes Mitglied
    Es gilt nicht das, was LEO sich wünscht, sondern das Urheberrecht. Dieser Absatz scheint aber nicht daraus zu zitieren, sondern ist eine LEO-eigene Formulierung aus deren Nutzungsbedingungen und dürfte somit belanglos sein, solange man denen nicht zustimmt. Nützlich ist er aufgrund des Phänomens des vorauseilenden Gerhorsams wahrscheinlich trotzdem. Aber zu dem Thema gab es hier ja neulich schon eine lange Diskussion.
     
  5. DerWissende
    DerWissende Bekanntes Mitglied
    Man SOLLTE das nich. Und dass es nicht jeder macht, helfe ich dabei auch nich.[1] Aber eine Frage nebenher: Willst alle Wörter wissen? Das geht nich, denn, angenommen, 20 Zeichen, es gibt zu viele Kombinationsmöglichkeiten. Denn dann gibt es das Universum nicht mehr.

    [1] Jetzt ist bestimmte auch zu erkennen, warum nicht, wenn das alle machen.

    Sicher ist es so, dass wenn man sagt etwas nich zu tun dass es dann von allen erst recht machen. So wird wahrscheinlich jemand hierauf antworten.
     
  6. Meniskusschaden
    Meniskusschaden Bekanntes Mitglied
    Dann sollte man diese Seite (und sicherheitshalber auch alle anderen) gar nicht aufrufen, denn der Webbrowser liest auch genau diese "verbotenen" Daten. Ich glaube nicht, dass z.B. Mozilla sich von sämtlichen aktuellen und zukünftigen Website-Betreibern die Genehmigungen holt, deren Seiten-Quelltexte lesen zu dürfen. Oder gibt es neuerdings eine gesetzliche Browser-Programmierung-Genehmigungs-Regulierung, die es Mozilla, Google etc gestattet und allen anderen verbietet?

    Ich verstehe gar nicht, warum hier immer unlautere Absichten unterstellt werden, wenn jemand Seiten-Quelltext auslesen will. Das sind doch genau die Daten, die der Website-Betreiber verschickt, DAMIT man sie sich ansieht. Wenn sich alle an so seltsame Vorgaben halten würden, gäbe es noch keinen einzigen Web-Browser und es wäre sinnlos, Webseiten zu betreiben. Na ja, wäre vielleicht gar nicht schlecht gewesen, wenn uns der Internet Explorer erspart geblieben wäre.;)
     
  7. DerWissende
    DerWissende Bekanntes Mitglied
    Ich habe nurmal schnell unter die Haube geschaut, es sieht nach POST aus...
    Daraus "zaubert" java GET aber...

    @ZTirom : Packe doch bitte alles sehr gut leserlich in Java-Code-Tags! So mag dir bestimmt keiner helfen. ;)

    @Meniskusschaden : Ja hast schon recht, aber wenn der Betreiber der das nunmal nicht möchte?

    Also das ist ein normales RESTful POST was da erwartet wird, und ein normaler, imitierter, fingierter Browser!

    :rolleyes:
     
  8. Thallius
    Thallius Bekanntes Mitglied
    Also mir rollen sich immer die Fußnägel auf wenn ich sowas lese.

    Wenn du mit einem Browser auf eine Seite gehst, dann holt der Browser die Seite und nicht nur vereinzelte Daten daraus. Das beinhaltet nunmal auch die Werbung, das wovon ein kostenloser Webseitenbetreiber nunmal lebt und seine Server damit bezahlt.
    Wenn nun jeder hergeht und sich seine relevanten Daten per script von dieser Webseite zieht und damit 1) die Werbung umgeht und 2) noch viel mehr Serverlast erzeugt weil er ja viel schneller abfragen kann als jemand der per Maus klicken muss, dann hat der Betreiber bei Zeiten die Schnauze voll oder geht pleite.
    Damit ist der kostenlose Service dann weg.

    Das scheint aber genau das zu sein, was Leute wie Du wollen oder? Oder bist du der Meinung "Gibt ja noch genug andere die die Seite regulär besuchen, da macht es nichts wenn ich es per Scirpt mache"? Dann denkst du wahrscheinlich auch es ist egal wenn Du im Laden etwas klaust, denn es gibt ja noch genug andere Kunden die bezahlen oder?

    Hast du schon einmal Wiki mit einer Spende unterstützt oder StackOverflow? Oder meinst du auch hier "Lass mal die anderen machen, gibt ja genug Trottel die für mich bezahlen"

    Könnt ihr nicht einfach mal ein wenig weiter denken als bis vor eure eigene Nasenspitze?

    Claus
     
  9. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Kannst du nicht mal versuchen, verständlich zu schreiben?

    Die Seite ist ganz normal mit GET abrufbar.

    Die "Meldung" steht halt so im Quelltext der Seite, auch wenn du sie mit 'nem Browser abrufst.
    Das ganze steht allerdings in einem Kommentar, und wird deshalb in üblichen Browsern ignoriert.
     
  10. Meniskusschaden
    Meniskusschaden Bekanntes Mitglied
    Kommt darauf an, was er eigentlich nicht möchte. Viele mißbräuchliche Nutzungsmöglichkeiten werden bereits durch das Urheberrecht verboten sein, ohne dass er selbst etwas dafür tun muß. Für das, was er darüber hinaus untersagen will, sehe ich eigentlich nur die Möglichkeit, es mit dem Nutzer rechtswirksam zu vereinbaren. Dazu wird er aber sicher stellen müssen, dass der Nutzer dem zustimmt, bevor er die Inhalte sieht. Das macht die Nutzung natürlich unattraktiver, so daß der Anbieter abwägen muß, ob es das wert ist. Er kann natürlich auch Wünsche für den fairen Umgang miteinander äußern und hoffen, dass sich möglichst viele daran halten. Oder er blufft mit einem Pseudo-Verbot im Impressum.;)


    @Thallius: Ich verstehe nicht, warum du die Diskussion auf so eine persönliche Ebene verlagerst. Ob meine Argumentation nun schlüssig ist oder nicht, kann doch nichts damit zu tun haben, wie ich persönlich damit umgehe. Es wirkt auf mich wie der Versuch, meine Person zu verunglimpfen, um meine Argumente nicht widerlegen zu müssen. Das ist schade, denn dein Posting enthält ja durchaus auch Sinnvolles, das so völlig in den Hintergrund tritt.
    Ich finde es wichtig, dass sich nicht jeder sein eigenes Recht zimmern darf, sondern dass es Ergebnis der Gesetzgebung und somit indirekt zumindest annähernd ein Spiegelbild des gesellschaftlichen Konsens sein sollte. Ich kann deshalb auch nicht nachvollziehen, wie du zu der Meinung gelangst, dass ich ungesetzliches Handeln gutheissen würde, denn in diesem und anderen Threads habe ich doch immer gerade dahingehend argumentiert, nicht das als maßgeblich zu erachten, was irgend jemand schreibt oder behauptet, sondern eben die Gesetze.

    Ebenso wie in der realen Welt gibt es auch im Internet zahlreiche Möglichkeiten, rechtmäßig oder mißbräuchlich zu handeln und das trifft auch auf die Nutzung der Hilfsmittel zu, die man dabei verwendet. Ich finde es zu kurz gedacht, zunächst die unrechtmäßige Nutzung zu unterstellen, um dann mit dieser Begründung deren Gebrauch zu untersagen. Das ist ein ziemlich gefährliches Prinzip und widerspricht meiner Vorstellung von freiheitlichen Grundwerten.

    Ich lasse mal offen, wie ich mich da verhalte, denn das geht niemanden etwas an. Ich finde es aber grundsätzlich unanständig, Spenden einzufordern und anmaßend, das Spendenverhalten anderer Menschen zu be- oder verurteilen.
    Wenn man eine Gegenleistung haben will, soll man das vorher sagen. Ansonsten kann man um Spenden bitten und niemand der nicht spendet muß deswegen ein schlechtes Gewissen haben. Das ist auch Bestandteil freiheitlicher Grundwerte.
    Ganz nebenbei bemerkt ist es übrigens wirtschaftlich sinnvoller, eine große Spende zu leisten, als denselben Betrag auf mehrere kleine Spenden zu verteilen, denn dadurch werden Verwaltungskosten gespart, so daß insgesamt mehr Geld beim eigentlichen Empfänger ankommt. Wenn man dann nur die kostenlosen Angebote nutzen würde, für die man selbst spendet, würde man da ja wohl das Kind mit dem Bade ausschütten.
     
    AndyJ gefällt das.
Die Seite wird geladen...

getInputStream() - Ihr Browser ist veraltet - Ähnliche Themen

new ObjectInputStream(socket.getInputStream());
new ObjectInputStream(socket.getInputStream()); im Forum Netzwerkprogrammierung
getInputStream() - auslesen bleibt leer
getInputStream() - auslesen bleibt leer im Forum Java Basics - Anfänger-Themen
Socket.getInputStream() -> einzelne Packete?
Socket.getInputStream() -> einzelne Packete? im Forum Netzwerkprogrammierung
Socket#getInputStream() immer der gleiche oder nicht?
Socket#getInputStream() immer der gleiche oder nicht? im Forum Netzwerkprogrammierung
Reihenfolge getInputStream() und getOutputStream()
Reihenfolge getInputStream() und getOutputStream() im Forum Netzwerkprogrammierung
Thema: getInputStream() - Ihr Browser ist veraltet