Google Suche Funktion

  • VB.NET

Es gibt 27 Antworten in diesem Thema. Der letzte Beitrag () ist von X-Zat.

    Google Suche Funktion

    Moin Leute!
    Ich bin grad für mein programm dabei, eine googlesuche zu machen, allerdings find ich nicht wirklich was über google...
    hab zwar schon ein tut ausprobiert, aber funktionieren tut es nicht :( hier der link: [VB.NET] Google Search Funktion
    wäre nett, wenn ihr mir helfen könntet also, ich hab ebend einen button, eine textbox und eine listbox, wenn ich dann etwas in die textbox intrag und auf den button drück, passiert einfach garnichts, und das mein ich so, es kommt auch kein fehler, weiß nicht woran das liegen könnte :(
    Also, ganz einfach:

    Um die Funktion (kein Witz, es ist eine Funktion/Function!) des Tutorials zu nutzen, musst du natürlich den Rückgabewert erwähnter Funktion auch nutzen, z.B.:

    Spoiler anzeigen
    Dim Suche As String="Warum-Bin-Ich-Ein-Vollhorst?"

    For Each Ergebnis As String In googlesearch(Suche)
    Listbox1.Items.Add(Ergebnis)
    Next


    Ansonsten kannst du, obwohl das verdammt ironisch ist, einfach mal nach einer API von Google googlen. Hab hier noch eine rumfliegen, werde aber einen Deibel tun, das ohne Zustimmung des Herstellers zu verteilen - Und googlen sollte man als Programmierer wirklich können...

    MfG,
    X-Zat / Momo

    //Edit:

    Hab hier das Tut gefunden, von dem ich die API hab:

    [VB 2008] Google Suchergebnisse auslesen (GoogleSearchAPI)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „X-Zat“ ()

    ah, ich danke dir, werds mal durchlesen... xD

    edit: hmm, also, eigentlich... wollte ich auch das so machen, dass ebend einfach ein feld da ist, man etwas eingibt, und wenn man eben auf den button drückt, dass es dann in firefox oder so googelt.
    wenn ich allerdings den ganz normalen google link splitte und dazwischen den text von der textbox einfüge, und dann z.b. hallo du !"§$% eingebe, ist das ergebnis nicht richtig...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Betzi“ ()

    Achtung! Dieses Thema wurde als erledigt markiert. Bitte erstelle ggf. ein neues Thema.

    ...
    Naja, das ging aus deinem Edit nicht hervor...

    Also, ganz einfach:

    Du weißt, dass Google bei Sonderzeichen nüscht findet. Ist ja auch richtig so. Aber dann google doch einfach ganz normal mit diesen Sonderzeichen.
    Ich hab grade mal nach TEST !"§$%&/()=? gegooglet und das hier hat er daraus verwurstet:
    q=TEST+!%22%C2%A7%24%25%26%2F()%3D%3F

    Das heißt:
    !=!
    "=%22%
    §=%C2
    $=%A/
    %=%24
    &=%25
    /=%26
    usw.

    Einfach ausprobieren - Und dann kannste ja die URL der Suche ganz einfach erstellen:

    Dim Suchbegriff As String = "TEST !" & Chr(34) & "§$%&/()="
    Suchbegriff = Suchbegriff.Replace(Chr(34), "%22")
    Suchbegriff = Suchbegriff.Replace("§","%C22")
    usw.

    Viel Spaß damit!

    MfG,
    X-Zat / Momo
    ohh, ich danke dir, hab mir schon sowas überlegt, wusste bloß nich wie ich das machen sollte xD
    wegen thread: ich drück iwie immer ausversehen auf den button.... der ist iwie doof positioniert xD

    edit: kannst du mir denn mal die zeilen erklären?
    Ok, machen wir es mal so:

    Erkenntnis aus meinem oberen Post: Google ersetzt Sondezeichen wie das Redezeichen mit eigenen Werten (hier %22)!

    Vorraussetzung: Eine Textbox "tbxSuchbegriff" und einen Webbrowser "wbbGoogleSuche"

    Dazu eine Methode (Sub):

    VB.NET-Quellcode

    1. Public Sub Googlen()
    2. 'Hier legen wir eine neuen Variable an
    3. Dim pSuchbegriff As String = tbxSuchbegriff.Text
    4. 'Und hier werden wir mithilfe der ASCII-Codes die einzelnen Buchstaben in die Google-Werte übersetzen
    5. 'Link zu den ASCII-Codes: [url]http://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange[/url]
    6. 'Im Folgenden ersetzen wir alle Sondezeichen mit den Werten, die Google dafür hat
    7. 'Ganz ehrlich: Ich bin zu faul, hier alle Google-Entsprechungen nachzuschauen ;)
    8. 'Aber hier hast du schonmal eine Liste mit den richtigen ASCII-Werten und deren Entsprechung dahinter
    9. 'Das "%22" musst du dann entsprechend ändern
    10. pSuchbegriff = pSuchbegriss.Replace(Chr(35),"%22") 'Raute
    11. pSuchbegriff = pSuchbegriss.Replace(Chr(36),"%24") 'Dollar
    12. pSuchbegriff = pSuchbegriss.Replace(Chr(37),"%22") 'Prozent
    13. pSuchbegriff = pSuchbegriss.Replace(Chr(38),"%22") 'Und
    14. pSuchbegriff = pSuchbegriss.Replace(Chr(39),"%22") 'Apostroph
    15. pSuchbegriff = pSuchbegriss.Replace(Chr(40),"%22") 'Klammer auf
    16. pSuchbegriff = pSuchbegriss.Replace(Chr(41),"%22") 'Klammer zu
    17. pSuchbegriff = pSuchbegriss.Replace(Chr(42),"%22") 'Mal
    18. pSuchbegriff = pSuchbegriss.Replace(Chr(43),"%22") 'Plus
    19. pSuchbegriff = pSuchbegriss.Replace(Chr(44),"%22") 'Komma
    20. pSuchbegriff = pSuchbegriss.Replace(Chr(45),"%22") 'Minus
    21. pSuchbegriff = pSuchbegriss.Replace(Chr(46),"%22") 'Punkt
    22. pSuchbegriff = pSuchbegriss.Replace(Chr(47),"%22") 'Slash
    23. pSuchbegriff = pSuchbegriss.Replace(Chr(58),"%22") 'Doppelpunkt
    24. pSuchbegriff = pSuchbegriss.Replace(Chr(59),"%22") 'Semikolon
    25. pSuchbegriff = pSuchbegriss.Replace(Chr(60),"%22") 'Kleiner
    26. pSuchbegriff = pSuchbegriss.Replace(Chr(61),"%22") 'Gleich
    27. pSuchbegriff = pSuchbegriss.Replace(Chr(62),"%22") 'Größer
    28. pSuchbegriff = pSuchbegriss.Replace(Chr(63),"%22") 'Fragezeichen
    29. pSuchbegriff = pSuchbegriss.Replace(Chr(64),"%22") 'At
    30. pSuchbegriff = pSuchbegriss.Replace(Chr(91),"%22") 'Eckige Klammer auf
    31. pSuchbegriff = pSuchbegriss.Replace(Chr(92),"%22") 'Backslash
    32. pSuchbegriff = pSuchbegriss.Replace(Chr(93),"%22") 'Eckige Klammer zu
    33. pSuchbegriff = pSuchbegriss.Replace(Chr(94),"%22") 'Zirkumflex
    34. pSuchbegriff = pSuchbegriss.Replace(Chr(95),"%22") 'Untestrich
    35. pSuchbegriff = pSuchbegriss.Replace(Chr(96),"%22") 'Gravis
    36. pSuchbegriff = pSuchbegriff.Replace(" ","+") 'Leerzeichen wird mit einem Plus ersetzt
    37. 'Hier wären wir dann fertig und generieren eine URL für den Webbrowser
    38. wbbGoogleSuche.Navigate("http://www.google.de/#hl=de&q=" & pSuchbegriff)
    39. End Sub


    Wie kommst du zu den Werten, mit denen Google die Sonderzeichen ersetzt? Google einfach mal die Sonderzeichen, z.B. nach "TEST´?=)(/&%$§".
    Dir wird in deinem Browser die URL der Suche angezeigt - Alles zwischen dem "&q=" und "&fp" ist dann dein Suchtext. Die Sonderbuchstaben wurden dort ihren Entsprechungen gemäß übersetzt.

    Ich hoffe, ich konnte dir weiterhelfen!

    MfG,
    X-Zat / Momo
    ja, das konntest du ;)
    ich danke dir für deine mühe!
    bin grad an nem andren pc... kein vb -.- mal gucken, heut abend oder so xD3
    aber das prinzip hab ich jetzt verstanden :thumbsup:

    aber muss ich denn einen webbrowser haben? ich kann das doch auch über firefox machen oder? weiß zwar grad den befehl nichtm aber ich mein, das geht.
    Der Code ist aber ziemlich unsauber, mach es doch zB mit Arrays.

    Hier ein Beispiel mit 2 Arrays und den Zeichen #, $, % und &.

    VB.NET-Quellcode

    1. Dim charVorher() as String = {"#", "$", "%", "&"}
    2. Dim charNachher() as String = {"%23", "%24", "%25", "%26"}
    3. Function GoogleSearchString(ByRef txt as String) as String
    4. Dim searchString as String = txt
    5. For i = 0 to charVorher.Count - 1
    6. searchString = searchString.Replace(charVorher(i), charNachher(i))
    7. Next
    8. Return searchString
    9. End Sub


    Das heißt, du würdest den zu suchenden Text, den man in die TextBox deiner Anwendung eingibt, als Parameter in die Funktion einfügen und dann den passenden Text für die Adresszeile zum Suchen erhalten.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Counter Bug“ ()

    @CounterBug: Jap, mein Code ist unsauber - Wollte eben ausdrücklich die FUnktionsweise und das Prinzip dahinter erklären ;). Aber deine Version ist um einiges besser, so viel muss ich dir lassen!

    @Samus Aran: Also ich hab, als ich das selbst mal brauchte, nach ähnlichem gesucht und nichts gefunden...

    @TE: Du brauchst nicht zwingend einen Webbrowser, das war nur ein Beispiel. Du könntest das auf 3 Wegen lösen (zumindest fallen mir jetzt 3 ein):

    1. Über CMD - CMD startet einen Link automatisch im StandardBrowser deines Rechners. Könntest du mit Shell aufrufen.
    2. Ohne Umwege mit Shell den Link starten - Müsste klappen.
    3. Mit Process.Start() müsste das ganze eigentlich auch funktionieren. Ich weiß aber nicht, ob du bei Process.Start() den Pfad des Browsers und den Link als CommandLineArgument angeben musst, oder ob der Link schon reicht...

    MfG,
    X-Zat / Momo
    @ X-Zat, dein code funktioniert komischerweise nicht, wenn ich ein $ angebe, kommt in der google leiste "24 raus... ich find auch irgentwie nichts, woran das liegen könnte...

    ich hab die links bisher immer über Process.start("LINK") eingegeben...

    @Counter Bug, wie verwende ich denn deine Methode?

    VB.NET-Quellcode

    1. MyURL = "http://www.google.com/#q=" & Server.UrlEncode("Dein Suchbegriff (z.B. aus einer TextBox)")

    So müsste es funktionieren...

    BTW.: Schön zu wissen, dass sich hier noch mehr verrückte ausm Kreis Borken herumtreiben ^^

    MfG,
    X-Zat / Momo
    LOOL, warum so Kompliziert.. des geht doch viiiiiel einfacher :D

    VB.NET-Quellcode

    1. Process.Start("http://www.google.de/#hl=de&source=hp&q=" & TextBox1.Text & "&aq=f&aqi=g10&aql=&oq=&fp=a42bbfd33bcc2dba")



    Wenn du das mit einem Webbrowser machen willst einfach

    VB.NET-Quellcode

    1. Webbrowser.Navigate("http://www.google.de/#hl=de&source=hp&q=" & TextBox1.Text & "&aq=f&aqi=g10&aql=&oq=&fp=a42bbfd33bcc2dba")


    Wenn du deine Suchen Speichern willst einfach:

    VB.NET-Quellcode

    1. ListBox1.Items.Add(TextBox1.Text)



    viel Spaß :D
    Ganz Simple :D

    Hoffe ich habe deine Frage verstanden. Tut mir leid wenn ich dir falls damit nicht geholfen habe, wenn da bitteschöön ;)