Danke für den Ansatz um den Inhalt einer Webseite auszulesen, nur: wenn du mal weiteroben die Posts
list wirst du feststellen, dass das mit der Google Seite eher weniger helfen dürfte, da die scheinbar
alle möglichen relevanten Teile per JavaScript nachlädt
Daher sollte man wohl das von Google bereit gestellte
API benutzen...
Mit etwas Glück liefert das dann auch weniger für den Anwendungsfall unnützen Balast mit...
Delphi-Quellcode:
function GetTextFromHtml(const AURL: string): string;
var
Document: IHtmlDocument2;
WebBrowser: TWebBrowser;
HiddenForm: TForm;
begin
Result := '';
HiddenForm := TForm.Create(nil);
try
HiddenForm.Top := 10;
HiddenForm.Left := 10;
HiddenForm.Height := 600;
HiddenForm.Width := 800;
HiddenForm.Visible := True;
WebBrowser := TWebBrowser.Create(HiddenForm);
try
TWinControl(WebBrowser).Name := 'WebBrowser';
TWinControl(WebBrowser).Parent := HiddenForm;
WebBrowser.Silent := True;
WebBrowser.Visible:= True;
WebBrowser.Align := alClient;
WebBrowser.HandleNeeded;
HiddenForm.InsertControl(WebBrowser);
WebBrowser.Navigate(AURL);
Document := WebBrowser.Document as IHtmlDocument2; // Diese
Result := Trim(Document.Body.innerText); // und diese Zeile bereiten mir noch Kopfschmerzen.
finally
HiddenForm.RemoveControl(WebBrowser);
WebBrowser.Free;
end;
finally
HiddenForm.Free;
end;
end;
function GetGoogleSearch(const ASearch: string): string;
begin
Result := GetTextFromHtml('https://www.google.com/search?q=' + TNetEncoding.URL.Encode(ASearch));
end;
Okay, habs gelesen und einen neuen Versuch gebastelt der allerdings bis jetzt nur pure Theorie ist da es nicht so möchte wie ich es gerne hätte.
Zitat:
EAccessViolation:
Access violation at address 005F8794 in module 'Project49.exe'. Read of address 00000288
Meine Hauptanwendung ist ein Konsolenprogramm.
In diesem Versuch probiere ich die Google Suche in einem TWebBrowser darzustellen und dann lediglich den dargestellten Text rauszukopieren.