如何使用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字符。
答案 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;
我不知道上述解决方案有哪些限制,但直到现在才开始工作。