NowhereMan: mit JavaScript auf Google zugreifen?

Ich plane, eine Extension für Firefox zu schreiben, die es ermöglicht, in die Adressleiste eine einfache Frage einzugeben (z.B. "Wann wurde Mozart geboren?" und die dann mithilfe der Googleergebnisse eine Antwort generiert. Dazu müsste ich irgendwie auf die Googleergebnisse zugreifen können und diese in Zeichenketten zerlegen. Wenn dann eine Zeichenkette gefunden wird die etwa lautet "Mozart wurde 1756 geboren", dann soll mittels RegEx das "1756" als Antwort zu der Frage gefunden werden und ausgegeben werden.

Ich habe mit Javascript noch keine Erfahrung, dafür ein wenig mit Java. Ich denke es wäre alles machbar, nur weiß ich nicht ob man, und wenn ja, wie man mittels JavaScript auf Google zugreifen kann ohne dass sich die Googleseite im Browser öffnet?

In Google selbst und hier im Forum habe ich dazu nichts gefunden, hoffentlich kann mir jemand einen Tipp geben. Danke!

  1. Hi,

    Ich plane, eine Extension für Firefox zu schreiben, die es ermöglicht, in die Adressleiste eine einfache Frage einzugeben (z.B. "Wann wurde Mozart geboren?" und die dann mithilfe der Googleergebnisse eine Antwort generiert. Dazu müsste ich irgendwie auf die Googleergebnisse zugreifen können und diese in Zeichenketten zerlegen. Wenn dann eine Zeichenkette gefunden wird die etwa lautet "Mozart wurde 1756 geboren", dann soll mittels RegEx das "1756" als Antwort zu der Frage gefunden werden und ausgegeben werden.

    ist ja putzig. Ich habe gerade mal "wann wurde mozart geboren" bei Google eingegeben. Der Text beim ersten Suchtreffer lautet:

    "Enthüllung: Was Mozart, heute vor 250 Jahren geboren, mit Hamburg verbindet. [...]"

    Wie lautet also die Antwort auf die Frage?

    Ich habe mit Javascript noch keine Erfahrung, dafür ein wenig mit Java.

    Java-Kenntnisse bringen Dir insofern etwas, als Du offenbar Erfahrung mit Objektorientierung hast. Mehr aber auch nicht. Zudem wird Dir der Prototype-Ansatz von JavaScript neu sein.

    Ich denke es wäre alles machbar,

    Alles nicht. Die Technik, um auf eine Website zuzugreifen, existiert jedoch und wird üblicherweise mit dem Akronym "AJAX" benamst. Auf Inhalte eines strukturierten Dokuments greifst Du mittels DOM zu.

    In Google selbst und hier im Forum habe ich dazu nichts gefunden,

    IIRC bietet Google eine API, um gezielt auf Suchergebnisse zugreifen zu können. Ob diese aus einer Browser-Extension heraus nutzbar ist (Stichwort Sicherheit), ist mir jedoch nicht bekannt.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. »» ist ja putzig. Ich habe gerade mal "wann wurde mozart geboren" bei Google eingegeben. Der Text beim ersten Suchtreffer lautet:

      "Enthüllung: Was Mozart, heute vor 250 Jahren geboren, mit Hamburg verbindet. [...]"

      Wie lautet also die Antwort auf die Frage?

      Dazu müsste ich noch einen Algorithmus schreiben, der nach dem Änderungsdatum der Webseite sucht und 250 davon abzieht ;-)
      Nein, natürlich dürfte man nicht nur das erste Ergebnis betrachten, sondern möglichst viele und diese miteinander vergleichen.

      Ok, dann werde ich mir mal AJAX und DOM genauer anschauen, danke für die Hilfe!

      1. Hi,

        Dazu müsste ich noch einen Algorithmus schreiben, der nach dem Änderungsdatum der Webseite sucht und 250 davon abzieht ;-)

        jo, und vorher erkennt, dass eben dies damit gemeint ist ;-)

        Nein, natürlich dürfte man nicht nur das erste Ergebnis betrachten, sondern möglichst viele und diese miteinander vergleichen.

        Klar. Ich wollte nur sicher gehen, dass Du Dir dessen bewusst bist, in den Bereich der Heuristiken und damit erschreckend nah[1] an die Thematik "künstliche Intelligenz" geraten bist. Die von Dir hier erfragte Problematik ist im Gesamtkonzept Deiner Zielsetzung eher als trivial zu bezeichnen.

        Ok, dann werde ich mir mal AJAX und DOM genauer anschauen, danke für die Hilfe!

        Gerne.

        Cheatah

        [1] Eigentlich bist Du damit sogar schon mitten drin. Herzlich willkommen. Unsereins ist derweil noch auf der Suche nach natürlicher Intelligenz ;-)

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Klar. Ich wollte nur sicher gehen, dass Du Dir dessen bewusst bist, »» in den Bereich der Heuristiken und damit erschreckend nah[1] an die
          Thematik "künstliche Intelligenz" geraten bist. Die von Dir hier
          erfragte Problematik ist im Gesamtkonzept Deiner Zielsetzung eher als
          trivial zu bezeichnen.

          Dessen bin ich mir bewusst, gerade weil ich mich für künstliche Intelligenz interessiere will ich ja diese Erweiterung schreiben. Und Google sozusagen als Gehirn bzw. Gedächtnis für den künstlich schlauen (Feuer-)Fuchs benutzen. ;-) Für mich ist die Problematik mit JavaScript, AJAX, DOM, XUL, ... allerdings zunächst das größere Hindernis. Aber da heisst es wohl einfach lesen und lernen und ausprobieren...

  2. Hello,

    In Google selbst und hier im Forum habe ich dazu nichts gefunden, hoffentlich kann mir jemand einen Tipp geben. Danke!

    du könntest dir vielleicht mal den Google Webservice anschauen.

    MfG
    Rouven

    --
    -------------------
    Ambition is the last refuge of failure.  --  Oscar Wilde (Irish Poet, Novelist, Dramatist and Critic, 1854-1900)
    1. Hello,

      du könntest dir vielleicht mal den Google Webservice anschauen.

      sorry, die ist deprecated, nimm die offizielle AJAX Search API

      MfG
      Rouven

      --
      -------------------
      Inter Arma Enim Silent Leges  --  Cicero
      1. Hello,

        du könntest dir vielleicht mal den Google Webservice anschauen.
        sorry, die ist deprecated, nimm die offizielle AJAX Search API

        Danke, genau so etwas habe ich gesucht.

      2. dort steht aber

        The Google AJAX Search API lets you embed Google Search in your
        personal web pages. A single AJAX Search API key is valid within a
        single directory on your web server, including any subdirectories.
        Signing up the URL http://www.mygooglesearchssite.com/mysite, for
        example, will create a key usable within all URLs in the
        http://www.mygooglesearchssite.com/mysite/ directory.

        Scheint also nicht für eine Browserextension nutzbar zu sein. Gibt es vielleicht eine andere Möglichkeit? Theoretisch muss ich ja nur den Text, der normalerweise in dem Browser dargestellt wird, wenn man eine Googlesuche durchführt, in einen String speichern.

        1. Hello,

          Scheint also nicht für eine Browserextension nutzbar zu sein. Gibt es vielleicht eine andere Möglichkeit? Theoretisch muss ich ja nur den Text, der normalerweise in dem Browser dargestellt wird, wenn man eine Googlesuche durchführt, in einen String speichern.

          wie löst du denn überhaupt die Suche aus, d.h. wer soll die Anforderung an Google stellen? Schreibst du einen eigenen Browser oder wie stellst du dir das vor?

          MfG
          Rouven

          --
          -------------------
          He is entertaining both out of the car and in the car because if you tell him that a corner is almost flat then he is the guy who is going to try to take it flat even if it means shunting it the other side of it, he will come with the data and say 'hey, I may have crashed and destroyed the car, but I was flat-out'. That is an interesting quality that he has!  --  Team Member on Jacques Villeneuve
          1. wie löst du denn überhaupt die Suche aus, d.h. wer soll die Anforderung an Google stellen? Schreibst du einen eigenen Browser oder wie stellst du dir das vor?

            MfG
            Rouven

            »»

            Nein, keinen eigenen Browser, sondern eine Erweiterung für Firefox, die bei jeder Eingabe in der Adressleiste abfragt, ob der eingegebene Text mit einem Fragezeichen endet, wenn ja, dann wird der Satz so umgestellt, dass aus der Frage eine Aussage wird und danach in Google gesucht. Also z.B. bei der Frage "Wo liegt Altomünster?" wird die Frage umgestellt in "Altomünster liegt (in/im)" und danach gegoogled. Dann werden die Suchergebnisse durchgegangen und die am häufigsten vorkommende Zeichenfolge wird als Antwort ausgegeben. Wenn etwa zweimal die Zeichenfolge "Altomünster liegt im Landkreis Dachau"(?) vorkommt, und nur einmal "Altomünster liegt in der Nähe von München", dann wird ausgegeben, dass es im Landkreis Dachau liegt.

            Alles in allem vielleicht nur eine Spielerei oder? ;-) aber ich finde es halt schade, dass diese enorme Informationsvielfalt, die Google bietet so ziemlich ungenützt bleibt. Daraus könnte man sicher noch mehr machen.

            mfG NowhereMan

            1. Hello,

              Alles in allem vielleicht nur eine Spielerei oder? ;-) aber ich finde es halt schade, dass diese enorme Informationsvielfalt, die Google bietet so ziemlich ungenützt bleibt. Daraus könnte man sicher noch mehr machen.

              stimmt. Was dein technisches Problem angeht: Dann hast du wahrscheinlich tatsächlich ein Problem mit der API. Ich würde es zwar mal probieren, aber es kann sein, dass Google Anfragen abblockt, die nicht von der für den Key angemeldeten Adresse stammen. Ausprobieren deshalb, weil z.B. der Key für Google Maps auch an eine Adresse gebunden ist, der HTTP-Geocoder aber beliebige Requests unter diesem Key annimmt.
              Sollte es nicht funktionieren, dann ruf per AJAX ganz normal die Trefferliste von Google auf, dann musst du allerdings mit dem Dschungel von HTML, Treffern und weiß ich was umgehen.

              MfG
              Rouven

              --
              -------------------
              Eine Bilanz ist wie der Bikini einer Frau. Sie zeigt fast alles, aber verdeckt das Wesentliche  --  Günter Stotz, Regierungsdirektor des baden-württembergischen Wirtschaftsministeriums
        2. Hi,

          A single AJAX Search API key is valid within a
          single directory on your web server, including any subdirectories.
          Scheint also nicht für eine Browserextension nutzbar zu sein.

          tja, die Formulierung "web server" lässt durchaus darauf schließen ... dennoch, vielleicht ist es ja möglich, einen Key für eine chrome://-URL zu erhalten.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes