Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Problem mit idhttp bei Googlesuche (https://www.delphipraxis.net/124198-problem-mit-idhttp-bei-googlesuche.html)

seddto1977 16. Nov 2008 17:13


Problem mit idhttp bei Googlesuche
 
Hallo!

ich möchte mir ein kleines Programm schreiben, mit dem ich überprüfen kann, auf welcher Seite der Ergebnisse meine Webseite für unterschiedliche Suchbegriffe gelistet ist. Ich möchte das ganze mit idhttp machen hab damit aber noch nicht so viel Erfahrung. So sieht der Code aus:

Delphi-Quellcode:
googlesuche := 'http://www.google.de/search?q=' + suchbegriff + '&hl=de&lr=&ie=UTF-8&oe=UTF-8&start=' + inttostr(googlecounter) + '0&sa=N' ;
inc(googlecounter);
try
  Form1.idhttp1 := tidhttp.create (nil);
  Form1.idHTTP1.Request.UserAgent := 'Mozilla';
  googlestring := Form1.idHTTP1.Get(googlesuche); (***)
  freeandnil(Form1.idhttp1);
except
An der Stelle (***) bekomme ich immer die Exception Invalide Argument to date encode. Kann mir jemand sagen, was da falsch ist?

seddto1977 17. Nov 2008 11:55

Re: Problem mit idhttp bei Googlesuche
 
Weiss denn wirklich keiner eine Antwort?

Klaus01 17. Nov 2008 12:16

Re: Problem mit idhttp bei Googlesuche
 
Mahlzeit,

hast Du das ganze schonmal versucht wenn Du
Delphi-Quellcode:
idhttp1.HandleRedirects:=true
eingestellt hast?
Grüße
Klaus

seddto1977 17. Nov 2008 12:39

Re: Problem mit idhttp bei Googlesuche
 
Hallo Klaus01,

Danke für die Antwort! Das war auch das erste was ich versucht habe:

Delphi-Quellcode:
try
  Form1.idhttp1 := tidhttp.create (nil);
  Form1.IdHTTP1.HandleRedirects := true;
  Form1.idHTTP1.Request.UserAgent := 'Mozilla';
  googlestring := Form1.idHTTP1.Get(googlesuche);
  freeandnil(Form1.idhttp1);
except
  Application.ProcessMessages;
end;
Die Fehlermeldung bleibt aber :( Nach der Exception springt das Programm nicht mal in den "except-Block" sondern bleibt in der Zeile freeandnil hängen. Ich weiss langsam echt nicht mehr weiter :(

Klaus01 17. Nov 2008 12:52

Re: Problem mit idhttp bei Googlesuche
 
Hast Du mal idhttp1.post() veruscht, denn
Du fütterst doch eigentlich eine Engine mit Daten?


Nach längerem Überlegen, ist das wohl Mumpitz gewesen.

Grüße
Klaus

ChrisE 17. Nov 2008 14:58

Re: Problem mit idhttp bei Googlesuche
 
Hallo seddto1977,

zwei Dinge die ich gesehen habe:

1. idHTTP von Form1 ist hoffentlich nicht per Drag & Drop auf dem Formular gelandet und wird in Deiner Methode wieder neu erstellt? Anderes herum: idHTTP ist im Bereich private deklariert.

2. Deine Quelltext funktioniert :-) Aber nur solange du eben nur ein Suchwort eingibst. Denn google erwartet bei q= eben eine genau "Beschreibung" des Begriffes:
D.h.:
Aus einem Blank soll ein + werden (also ich suche nach 1 und 2)

Also der Suchstring bei dem Wort ->Delphipraxis<- sollte so aussehen
Zitat:

...q=Delphipraxis...
Bei der Suche nach ->Delphi Praxis<- muss er so aussehen
Zitat:

...q=Delphi+Praxis...
Man sieht + anstatt Blank

Bei der suche nach ->Delphi + Praxis<-
Zitat:

...q=Delphi+%2B+Praxis...
man sieht + anstatt Blank und das echte + der Anfrage kodiert als %2B

Mit StringReplace dürftest du ziemlich weit kommen :-)
Aber Vorsicht, das kann Uferlos werden wegen den Sonderzeichen etc. ;-)

Gruß, Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:46 Uhr.

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