Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Ausführen von Google Suchen (https://www.delphipraxis.net/210455-ausfuehren-von-google-suchen.html)

KodeZwerg 26. Mai 2022 20:33

AW: Ausführen von Google Suchen
 
Zitat:

Zitat von TurboMagic (Beitrag 1506378)
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.

TurboMagic 27. Mai 2022 11:31

AW: Ausführen von Google Suchen
 
Hallo,

in einem Konsolenprogramm geht sowas wegen fehlender Windows Botschaften bearbeitung (GetMessage/DispatchMessage etc.)
evtl. nicht. Versuch es doch im ersten Schritt mal als GUI Programm.

Abstürzen sollte es als Konsolenprogramm aber trotzdem nicht.

Grüße

TurboMagic


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:56 Uhr.
Seite 3 von 3     123   

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