从Chromium Embedded获取HTML源代码

时间:2012-11-10 17:06:05

标签: delphi google-chrome delphi-xe2 tchromium

如何使用Delphi Chromium Embedded Component执行此操作我知道如何使用TWebBrowser执行此操作。但由于没有文件存在,我相信其他人也有同样的问题。

由于

3 个答案:

答案 0 :(得分:8)

这是你如何做的..

procedure TCustomLoad.OnLoadEnd(const browser: ICefBrowser;
  const frame: ICefFrame; httpStatusCode: Integer);
  var
  data:tstringlist;
begin
  data:=tstringlist.create;
  if frame.IsMain then
  data.text:=frame.Source; // HTML Source    
end;
  data.free;
end;

答案 1 :(得分:6)

在dcef 3中

procedure StringVisitor(const str: ustring);
begin
  //str is the SourceHtml
showmessage(str);
end;

function GetSourceHTML: string;
var
CefStringVisitor:ICefStringVisitor;
begin
  CefStringVisitor := TCefFastStringVisitor.Create(StringVisitor);
  Chromium1.Browser.MainFrame.GetSource(CefStringVisitor);
end;

答案 2 :(得分:0)

我真的很想将此添加为评论,但是我没有足够的声誉。 :/无论如何-因为我很不喜欢html源代码,所以我声明

using (WebClient client = new WebClient()) {
    // Add the user agent header, otherwise we will get access denied.
    client.Headers.Add("User-Agent: Other");

    // Full asset streamed into a single string. I.E: https://github.com/soopercool101/BrawlCrate/releases/download/BrawlCrate_v0.14_Hotfix2/BrawlCrate.v0.14.6873.39137.exe
    string html = client.DownloadString(Asset.Url);
    client.DownloadFile(URL, AppPath + "/Update.exe"); // AppPath is defined as whereever the program is installed
}

在程序开始时一次,然后仅使用

CefStringVisitor := TCefFastStringVisitor.Create(StringVisitor);

我想问一下我是否应该对此有所了解-也许这是一个坏主意?