用TWebBrowser下载完后,怎么能得到其中的文字信息?(100分)

  • 主题发起人 主题发起人 Kang
  • 开始时间 开始时间
K

Kang

Unregistered / Unconfirmed
GUEST, unregistred user!
看帮助,需要接口和ole,不懂。请教了
把下载的内容的HTML内容存成字符串
 
function GetHtml(const WebBrowser: TWebBrowser): string;
const
BufSize = $10000;
var
Size: Int64;
Stream: IStream;
hHTMLText: HGLOBAL;
psi: IPersistStreamInit;
begin
if not Assigned(WebBrowser.Document) then Exit;
OleCheck(WebBrowser.Document.QueryInterface (IPersistStreamInit, psi));
try
//OleCheck(psi.GetSizeMax(Size));
hHTMLText := GlobalAlloc(GPTR, BufSize);
if 0 = hHTMLText then RaiseLastWin32Error;
OleCheck(CreateStreamOnHGlobal(hHTMLText, True, Stream));
try
OleCheck(psi.Save(Stream, False));
Size := StrLen(PChar(hHTMLText));
SetLength(Result, Size);
CopyMemory(PChar(Result), Pointer(hHTMLText), Size);
finally
Stream := nil;
end;
finally
psi := nil;
end;
end;
 
其实论坛上已有许多现成的答案,你只要搜索一下就有了
DragonPC_???说有是一种方法,另一种方法如下:
var
Doc: IHTMLDocument2;
begin
Doc := AWebBrowser.Document as IHTMLDocument2;
if Assigned(Doc) and Assigned(Doc.body) then
Result := Doc.body.innerText; //也可以用innerHTML取得其HTML文本
end;
当然,你要引用MSHTML单元。
 
多人接受答案了。
 
后退
顶部