![]() |
Mit Delphi anzahl Treffer bei Google finden
hallo! :gruebel:
wie kann man mit delphi bei Google eine Suchanfrage stellen und dann die anzahl Treffer berechnen? Ich möchte also sowas wie eine function GetGoogleResultCount(Text: string). Internetverbindung habe ich bereits Liebe Grüsse Laufi |
Re: Mit Delphi anzahl Treffer bei Google finden
Zwei Möglichkeiten fallen mir ein:
1.) Indy HTTP Komponente (IdHTTP). Per POST oder GET die Suche an Google übertragen (richtige Parameter vorrausgesetzt) und den Inhalt der Seite dann auseinander nehmen. ("Ergebnisse 1 - 10 von ungefähr 115 für ...") 2.) TWebBrowser. Aber keinen Schimmer, wie man mit dem Ding das machen würde ... per .Navigate Google aufrufen, dann irgendwie das HTML daraus ziehen und dann das Ergebnis suchen. |
Re: Mit Delphi anzahl Treffer bei Google finden
Such mal nach gethttp. Da wird beschrieben wie man eine html-Seite downloaden kann. Die url für google-Abfragen lautet
![]() Dann musst du halt in dem Quellcode nach den Treffern suchen
Code:
Aber bestimmt gibts da von google auch schon ne API für (guck mal da
<font size=-1>Ergebnisse [b]1[/b] - [b]10[/b] von ungefähr [b]912.000.000[/b] für [b]Suchwort[/b].
![]() Gruß tr909 |
Re: Mit Delphi anzahl Treffer bei Google finden
So kann man Google mit einer Suchanfrage aufrufen:
(Unit ShellAPI muss eingebunden werden!)
Delphi-Quellcode:
Wie man allerdings die Treffer ausliest, weiß ich leider nicht...
procedure GoogleSuche(s : String);
var adr : string; begin adr := 'http://www.google.de/search?hl=de&q=' + s + '&btnG=Suche&meta='; ShellExecute(Application.Handle, 'open', PChar(adr), nil, nil, SW_ShowNormal); end; P@Tti EDIT 1: Die Seite wird bei meinem Code allerdings in einem Browser geöffnet... |
Re: Mit Delphi anzahl Treffer bei Google finden
So halt dann den String:
Delphi-Quellcode:
Kleine Zwischenfrage, weiß jemand wie ich den String mit Parametern erstellen kann, für die Wikipedia-Suche? Also function WikipediaSuche?
function GoogleSuche(s : String): string;
begin result := 'http://www.google.de/search?hl=de&q=' + s + '&btnG=Suche&meta='; end; Gruß Calculon -- |
Re: Mit Delphi anzahl Treffer bei Google finden
evtl. so (ungetestet):
Delphi-Quellcode:
Sollte eigentlich klappen ;-)
function WikipediaSuche(s : String): string;
begin result := 'http://de.wikipedia.org/wiki/Spezial:Search?ns0=1&search=' + s + '&fulltext=Suche'; end; P@Tti |
Re: Mit Delphi anzahl Treffer bei Google finden
@calculon: mach bitte für solche Fragen ein eigenes Thema auf. Stelle dir vor du stellst eine Frage und andere posten neue Fragen in dem Thread so das deine eigentliche Frage völlig untergeht. Das ist einfach unfair gegenüber dem Fragesteller.
|
Re: Mit Delphi anzahl Treffer bei Google finden
Eine andere möglichkeit ist, das ganze mit SOAP zu machen. Google hat es zumindest mal angeboten und bei DSDT findest du ein Tutorial, hier:
![]() Einziger Haken: das ist auf glaube ich 1000 Anfragen pro Tag begrenzt. |
Re: Mit Delphi anzahl Treffer bei Google finden
Zitat:
Zum Thema. Hab' es mit den Tipps (mit Indy9) mal versucht:
Delphi-Quellcode:
Das funktioniert zwar, aber nur für Suchbegriffe ohne Leerzeichen oder irgendwelchen Operatoren. Stimmt die GoogleSuche-Funktion denn 100%ig?
function GoogleSuche(s : String): string;
begin result := 'http://www.google.de/search?hl=de&q=' + s + '&btnG=Suche&meta='; end; procedure TForm1.Button1Click(Sender: TObject); var str: string; begin edit2.Text := GoogleSuche(edit1.Text); str := IDHTTP1.Get(edit2.Text); Delete(str, 1, Ansipos('Ergebnisse', str) - 1); str := copy(str, Ansipos('Ergebnisse', str), Ansipos(edit1.text, str)-Ansipos('Ergebnisse', str)); str := StringReplace(str, '[b]', '', [rfReplaceAll]); str := StringReplace(str, '[/b]', '', [rfReplaceAll]); ShowMessage(str + edit1.Text); end; [edit] Ok, so geht's:
Delphi-Quellcode:
[/edit]
procedure TForm1.Button1Click(Sender: TObject);
var str, sav: string; begin sav := edit1.Text; edit1.Text := trim(edit1.Text); edit1.Text := StringReplace(edit1.text, ' ','+', [rfReplaceAll]); edit2.Text := GoogleSuche(edit1.Text); str := IDHTTP1.Get(edit2.Text); Delete(str, 1, Ansipos('Ergebnisse', str) - 1); str := copy(str, Ansipos('Ergebnisse', str), Ansipos(sav, str)-Ansipos('Ergebnisse', str)); str := StringReplace(str, '[b]', '', [rfReplaceAll]); str := StringReplace(str, '[/b]', '', [rfReplaceAll]); ShowMessage(str + sav); end; Gruß Calculon -- |
Re: Mit Delphi anzahl Treffer bei Google finden
Leer- und Sonderzeichen musst du kodieren. Leerzeichen z.B. muß bei google ein + werden
Gruß tr909 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz