如何利用MSHTML把一个HTML文件中的所有链接取出来?(200分)

  • 主题发起人 主题发起人 Newton
  • 开始时间 开始时间
N

Newton

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个网络程序,利用INDYHTTP读一个网页,如果文件变化了(根据头判断,
一个MEMO用来显示头),就读网页的内容,并取出所有的链接(TREEVIEW显示连接,
RICHEDIT显示网页的HTML内容)。
我不想用WEBBROWSER来读网页,因为它下载图片,运行JAVA等不必要,而且影响速度
的东西。但是对取到的HTML文件的分析连接,一直没有什么好办法,自己写的话,有
太多的可能情况需要处理,所以想用MSHTML来处理,但是MSHTML使用WEBBROWSER的数
据很方便,不知道它如何使用INDY取到的HTML文件部分。
谢谢
 
可以参阅微软的一个Sample: WalkAll
该范例演示了如何创建一个基于MSHTML,无界面的HTML Parser。
http://msdn.microsoft.com/downloads/samples/internet/default.asp?url=/downloads/samples/internet/browser/walkall/default.asp
 
提取网页中所有链接

 
  var
   doc:IHTMLDocument2;
   all:IHTMLElementCollection;
   len,i:integer;
   item:OleVariant;
  begin
   doc:=WebBrowser1 .Document as IHTMLDocument2;
   all:=doc.Get_links;             //doc.Links亦可
   len:=all.length;
   for i:=0 to len-1 do begin
    item:=all.item(i,varempty);        //EmpryParam亦可
    memo1.lines.add(item.href);
   end;
  end;
 
谢谢addie,我在看你提供的连接;
也谢谢zhihuali,但提供的还是用WEBBROWSER取得HTML,这样的缺点是把图片也一起DOWN到
本机了,而且会执行网页上的程序,比如跳出新的窗口,我原来就是这么用的,效果不好。
但也衷心感谢!!
 
多人接受答案了。
 
后退
顶部