Delphi 7 - 网页源代码(gzip) - WebBrowser

时间:2014-02-01 00:24:07

标签: delphi web gzip delphi-7 twebbrowser

如何使用gzip压缩网站的源代码到memo1。

我已经使用这个方法来获取源代码:

function GetWebBrowserHTML(const WebBrowser: TWebBrowser): String;
  var
  LStream: TStringStream;
  Stream : IStream;
  LPersistStreamInit : IPersistStreamInit;
begin
  if not Assigned(WebBrowser.Document) then exit;
  LStream := TStringStream.Create('');
  try
    LPersistStreamInit := WebBrowser.Document as IPersistStreamInit;
    Stream := TStreamAdapter.Create(LStream,soReference);
    LPersistStreamInit.Save(Stream,true);
    result := LStream.DataString;
  finally
    LStream.Free();
  end;
end;

但是当我尝试在压缩网站上使用此方法时,我收到一个空结果或几个randome字符。

2 个答案:

答案 0 :(得分:1)

从服务器下载HTML之前,HTML可以显示给用户。因此,DOM接口永远不会向您返回压缩的HTML,因此根本不需要担心这一点。你展示的代码就可以了。

答案 1 :(得分:0)

首先,非常感谢Remy Lebeau的帮助,你的建议真的帮助我解决了这个问题。

总之,我无法找到上述代码在一个页面上对我不起作用的原因,但我找到了一个有效的替代方案。

uses MSHTML

procedure TForm1.Button1Click(Sender: TObject);
begin
 Memo1.Text:=(WebBrowser1.Document AS IHTMLDocument2).body.innerHTML;
end;

我不知道上述解决方案有哪些限制,但直到现在才开始工作。