Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Webseite auslesen Error 403 forbidden (https://www.delphipraxis.net/6281-webseite-auslesen-error-403-forbidden.html)

Gambit 5. Jul 2003 14:56


Webseite auslesen Error 403 forbidden
 
Hallo!

Ich möchte mit fogender Routine den Inhalt einer Web Seite zunächst erstmal in ein Memo laden:


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  memo1.Text := idHTTP1.Get('http://www.google.com/custom?        q=blahblah&domains=www.blahblah&sitesearch=www.blahblah.de');
end;
Bei einfachen Links zB. 'www.google.de' funzt die get-Methode. Mit einem Link wie oben eingegeben nicht.
Dann bekomm ich eine Exception mit der Meldung Error 403 forbidden.

Wenn ich den Link direkt in Google eingebe funzt er.

Kann man da irgendwas machen?

Gruß

Gambit

Pseudemys Nelsoni 1. Apr 2004 02:23

Re: Webseite auslesen Error 403 forbidden
 
genau das problem habe ich auch, ha wer ne lösung?

Gambit 1. Apr 2004 07:38

Re: Webseite auslesen Error 403 forbidden
 
Moin,

ich hab mir ein Webbrowser Objekt genommen...

und dann z.B so:

Delphi-Quellcode:
URL := 'http://www.google.com/custom?usw...
webbrowser1.Navigate(URL,x,x,x,x);
den HTML-Code der Webseite bekommst du dann z.B so:

Delphi-Quellcode:
BodyText:= WebBrowser1.OleObject.Document.Body.InnerHtml;
diese Zeile packe ich in die Ereignismethode OnDocumentComplete des Webbrowsers.

Damit der Webbrowser auf deiner Form nicht angezeigt wird, kannst du folgendes machen:

Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin
  ShowWindow(Webbrowser1.Handle, SW_HIDE);
end;
Ob das nun besonders clever so ist weiß ich nicht, es funzt aber...

Gruß

Gambit

sakura 1. Apr 2004 08:23

Re: Webseite auslesen Error 403 forbidden
 
Mit den Indy-Kompos wurde auf Google schon zu viel Müll getrieben und so wurden diese blockiert. Hier die einfache Lösung:

Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
  [color=#ff0000]idHTTP1.Request.UserAgent := 'Mozilla';[/color]
  memo1.Text := idHTTP1.Get('http://www.google.com/custom?        q=blahblah&domains=www.blahblah&sitesearch=www.blahblah.de');
end;
...:cat:...

Pseudemys Nelsoni 1. Apr 2004 15:09

Re: Webseite auslesen Error 403 forbidden
 
DANKE sakura, es klappt :thuimb:

Gambit 3. Apr 2004 08:33

Re: Webseite auslesen Error 403 forbidden
 
Ja, stimmt, das klappt gut.
Diese Zeile:

Delphi-Quellcode:
idHTTP1.Request.UserAgent := 'Mozilla';
ist die nur nötig bei einem Zugriff auf Google? Was ist, wenn ich sofort danach noch auf eine andere Domain zugreifen will?
Muss ich dann auch noch irgendein UserAgent angeben?

Ich erhalte manchmal im Programm die Meldung: "Die Verbindung wurde erfolgreich beendet" ohne eine Exception. Dann wird die Seite nicht weiter geparsed. Was hat es damit auf sich? Kennt das jemand?

Gruß

Gambit

Gambit 6. Apr 2004 08:54

Re: Webseite auslesen Error 403 forbidden
 
ne, klappt doch nicht, gibt man als Suchbegriff hinter q 2 Wörter ein, die mit Leerzeichen getrennt sind, bekommt man einen Socket Error...

Gruß

Gambit

fkerber 6. Apr 2004 09:15

Re: Webseite auslesen Error 403 forbidden
 
Hi!

Müssen die nicht mit + verbunden werden?

Ciao fkerber

Gambit 6. Apr 2004 09:17

Re: Webseite auslesen Error 403 forbidden
 
ja, aber warum klappt es dann, wenn man den Link direkt im Browser eingiebt? Macht der dann den Fehler weg?

Gruß

Gambit

fkerber 6. Apr 2004 09:26

Re: Webseite auslesen Error 403 forbidden
 
Hi!

Jepp, der wandelt die Leerzeichen zu %20 um.

Ciao fkerber


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 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