Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Mit Delphi anzahl Treffer bei Google finden (https://www.delphipraxis.net/100040-mit-delphi-anzahl-treffer-bei-google-finden.html)

Laufi 21. Sep 2007 12:47


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

Nuclear-Ping 21. Sep 2007 12:56

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.

tr909 21. Sep 2007 13:01

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
http://www.google.de/search?q=Suchwort

Dann musst du halt in dem Quellcode nach den Treffern suchen
Code:
<font size=-1>Ergebnisse [b]1[/b] - [b]10[/b] von ungefähr [b]912.000.000[/b] für [b]Suchwort[/b].
Aber bestimmt gibts da von google auch schon ne API für (guck mal da http://www.dsdt.info/tutorials/wsclient/?page=4)

Gruß
tr909

patti 21. Sep 2007 13:02

Re: Mit Delphi anzahl Treffer bei Google finden
 
So kann man Google mit einer Suchanfrage aufrufen:
(Unit ShellAPI muss eingebunden werden!)

Delphi-Quellcode:
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;
Wie man allerdings die Treffer ausliest, weiß ich leider nicht...

P@Tti

EDIT 1: Die Seite wird bei meinem Code allerdings in einem Browser geöffnet...

calculon 21. Sep 2007 13:17

Re: Mit Delphi anzahl Treffer bei Google finden
 
So halt dann den String:

Delphi-Quellcode:
function GoogleSuche(s : String): string;
begin
  result := 'http://www.google.de/search?hl=de&q=' + s + '&btnG=Suche&meta=';
end;
Kleine Zwischenfrage, weiß jemand wie ich den String mit Parametern erstellen kann, für die Wikipedia-Suche? Also function WikipediaSuche?

Gruß

Calculon
--

patti 21. Sep 2007 13:20

Re: Mit Delphi anzahl Treffer bei Google finden
 
evtl. so (ungetestet):

Delphi-Quellcode:
function WikipediaSuche(s : String): string;
begin
  result := 'http://de.wikipedia.org/wiki/Spezial:Search?ns0=1&search=' + s + '&fulltext=Suche';
end;
Sollte eigentlich klappen ;-)

P@Tti

SirThornberry 21. Sep 2007 13:24

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.

inherited 21. Sep 2007 13:35

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: http://www.dsdt.info/tutorials/wsclient/
Einziger Haken: das ist auf glaube ich 1000 Anfragen pro Tag begrenzt.

calculon 21. Sep 2007 13:59

Re: Mit Delphi anzahl Treffer bei Google finden
 
Zitat:

Zitat von SirThornberry
@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.

Okay.

Zum Thema. Hab' es mit den Tipps (mit Indy9) mal versucht:

Delphi-Quellcode:
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;
Das funktioniert zwar, aber nur für Suchbegriffe ohne Leerzeichen oder irgendwelchen Operatoren. Stimmt die GoogleSuche-Funktion denn 100%ig?

[edit]
Ok, so geht's:

Delphi-Quellcode:
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;
[/edit]

Gruß

Calculon
--

tr909 21. Sep 2007 14:06

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 12:39 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz