当前位置:编程学习 > Delphi >>

delphi 如何获取网页中的文字信息

我想在网页中的某个 特定窗口的文字 关键字进行分析,需要调用哪个控件,代码应该怎么写?
我用的是delphi 7,
补充:注:网页有限制 鼠标右键的~~~!!!
		
答案:
看你的意图,不需要处理大量的数据,那么WebBrowser就可以了
Memo1.Lines.Add(IHtmlDocument2(WebBrowser1.Document).Body.OuterHtml);
这段语句可以直接取网页源代码
或者你可以使用WebBrowser的Document对象的IPersistStreamInit接口
用EmbeddedWB控件,它可以直接读入网页源代码,无视网页限制鼠标右键,然后直接对源代码分析即可
如果没有EmbeddedWB控件,去 www.delphinbox.com下procedure TForm1.Button1Click(Sender: TObject); var v:variant; begin webbrowser1.Navigate(' www.zzzyk.com'); sleep(5000); v:=webbrowser1.Document; memo1.Text:=v.body.innertext; end; //统计就自己写了。procedure TForm1.Button1Click(Sender: TObject); var v:variant; begin webbrowser1.Navigate(' www.zzzyk.com'); sleep(5000); v:=webbrowser1.Document; memo1.Text:=v.body.innertext; end; //统计就自己写了。不要sleep,应该有docment completed的事件吧。
Csdn上的多的是,而且有几种解决方案
受教了
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;
统计就是你针对自己要从网页中获取的信息自己处理
我写了一个软件,专门抓网页的文字,用了微程的函数库,哈哈。有空去大富翁论坛看看

上一个:编程学Delphi好呢还是C++好呢??
下一个:C ++ java Delphi

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,