Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#21

AW: Ausführen von Google Suchen

  Alt 26. Mai 2022, 21:33
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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat