Anfrage an Suchmaschine senden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Anfrage an Suchmaschine senden

    Hallo Leute,
    ich bin am verzweifeln und steh kurz davor das Projekt wieder einzustampfen. Ihr seid meine letzte Hoffnung ;)

    Ich will mit Java eine Suchanfrage an z.B. Yahoo senden.
    1. Problem: Wie macht man das?

    Eine Lösung:
    [code:1]
    URL url = new URL("http://de.search.yahoo.com/search?p=wunsch&fr=yfp-t-501&ei=UTF-8&meta=vl%3D");
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
    [/code:1]
    Dann kommt aber eine HTML Seite mit dem ISO 8859-1 encoding zurück. Das kann ich nicht weiterverarbeiten, da fast jede Webseite ein Sonderzeichen enthält wie z.B. Euro Zeichen oder n Bindestrich.

    Zweite Lösung:
    [code:1]
    URL url = new URL("http://de.search.yahoo.com:80/");
    URLConnection conn = url.openConnection();
    conn.setDoOutput(true);
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
    wr.write("GET /search?p=wunsch&ei=ISO-8859-1&fr=yfp-t-501&x=wrt&meta=vl%3D HTTP/1.0\r\n");
    wr.write("Host: de.search.yahoo.com\r\n");
    wr.write("Accept: text/html, text/plain, text/css, text/sgml, */*;q=0.01\r\n");
    wr.write("Accept-Encoding: gzip\r\n");
    wr.write("Accept-Language: en\r\n");
    wr.write("User-Agent: Lynx/2.8.6rel.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.6.2\r\n");
    wr.write("\r\n");
    wr.flush();
    BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    [/code:1]
    Den HTTP Request hab ich mithilfe von Ethereal abgeguckt. Jedesmal werde ich aber auf die Startseite der Suchmaschine umgeleitet, statt auf die Ergebnisseite.

    Frage: Wie macht man mit Java eine Suchmaschinenabfrage, die einen gültigen UTF-8 String zurückliefert?
    (Hab mich schon ausgiebig mit den zur Verfügung gestellten APIs der Suchmaschinen auseinandergesetzt. Diese würde ich auch liebend gerne verwenden, wenn sie nur ansatzweise dieselben Ergebnisse liefern würden, wie die "Originalsuche" übers Webformular)

    Oder wenn man mit der ersten Lösung des obigen Problems weiterarbeitet: Wie kann man die ungültigen Sonderzeichen aus dem String entfernen? Hab schon alles mögliche probiert mit URLEncoder in UTF-8 encodiert wieder dekodiert in ISO-8859-15 encodiert und zurück oder in eine UTF-8 Datei ausgeben lassen und wieder einlesen oder mit dem StringBuffer experimentiert. Die ungültigen Sonderzeichen bleiben nach wie vor im String. Diese werden als Kästchen dargestellt oder lassen sich sogar nicht einmal mit der Copy&Paste funktion kopieren. Es werden dann nur die Zeichen kopiert bis vor dem Sonderzeichen.

    Für die weitere Verarbeitung benötige ich die Internetseite im UTF-8 Format (XML / HTML Parser und so)

    Frage: Wie wandle ich den String in gültiges UTF-8 um? oder wie entferne ich die Sonderzeichen?

    Hoffe, dass mir jemand helfen kann...

    Gruß Beni