5-8万年薪顶级嵌入式,京沪深就业地 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

如何提取含有iframe网页(HTML)的表格(table)数据??????

楼主kdb9813(菜头)2004-11-09 20:07:56 在 Delphi / VCL组件开发及应用 提问

想提取网页里的表格(table标签)数据,因为session的原来,所以用了,但些网页被包含在一个iframe里,所以在论坛上找到了一高人的代码(参考代码一),用FrameWin.document.body.outerHTML得到了源码,但问题是,我想得到table表里的数据,好像没有FrameWin.document.all.tags('table').item(0).outerHTML这种形式,但WebBrowser却有.如参考代码二,因为要提取的网页的表格是通过另一同级iframe网页的javascript赋值的,所以不能直接通过FrameWin.document.body.outerHTML用字符串直接分析,那样得的数据都是空格。  
   
  大家有什么好办法。。  
   
   
  参考代码一:  
   
  usr   mshtml;  
  procedure   TMainForm.ToolButton56Click(Sender:   TObject);  
  var  
      Index:             Integer;  
      Document:       IHTMLDocument2;  
      FrameIdx:       OleVariant;  
      FrameDis:       IDispatch;  
      FrameWin:       IHTMLWindow2;  
  begin  
      while   Webbrowser1.ReadyState   <>   READYSTATE_COMPLETE   do  
          Application.ProcessMessages;  
   
      if   WebBrowser1.Document   =   nil   then   Exit;  
      if   WebBrowser1.Document.QueryInterface(IHTMLDocument2,   Document)   <>   0   then   Exit;  
      if   Document.frames.length   >   0   then  
      begin  
          for   Index   :=   0   to   Document.frames.length   -   1   do  
          begin  
              FrameIdx   :=   Index;  
              FrameDis   :=   Document.frames.item(FrameIdx);  
              if   FrameDis.QueryInterface(IHTMLWindow2,   FrameWin)   <>   0   then   Exit;  
              ShowMessage(FrameWin.document.body.outerHTML);      
              //FrameWin.document   就是你要的每个   Frame   的文档  
          end;  
      end;  
  end;  
   
  参考:http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/mshtml/reference/ifaces/document2/onclick.asp  
   
  参考代码二:  
   
  procedure   Form1.Button1Click(Sender:   TObject);  
  var   i,j   :   integer;  
          GetTable   :   OleVariant;  
  begin  
      WebBrowser1.Navigate('http://www.chinaexplore.com.cn/minalnew/MyHTML.htm');  
          while   WebBrowser1.ReadyState   <   READYSTATE_INTERACTIVE   do     //頁面激活  
          Application.ProcessMessages;  
          Memo1.Lines.Add(WebBrowser1.OleObject.Document.all.tags('table').item(0).outerhtml);  
          GetTable:=   WebBrowser1.OleObject.Document.all.tags('table').item(0);  
          For   i:=0   to   (GetTable.Rows.Length-1)   do  
          begin  
              For   j:=0   to   (GetTable.Rows.Item(i).Cells.Length-1)   do  
              begin  
                  Memo2.Lines.Add(GetTable.Rows.Item(i).Cells.Item(j).innerhtml);  
              end;  
          end;  
   
  end;  
  问题点数:100、回复次数:8Top

1 楼kdb9813(菜头)回复于 2004-11-09 20:28:26 得分 0

顶者有分.不够再开.Top

2 楼zwb666(zwb)回复于 2004-11-09 20:37:08 得分 50

顶Top

3 楼kdb9813(菜头)回复于 2004-11-10 08:17:41 得分 0

真的没人会吗?高手都哪去了.感觉也不难呀,就是从IHTMLDocument2提取<table>里数据到数据库.Top

4 楼fayeflash(我爱阿菲)回复于 2004-11-10 09:50:51 得分 50

帮你顶。Top

5 楼fayeflash(我爱阿菲)回复于 2004-11-10 10:11:47 得分 0

看了很长的时间才看明白你说的意思。以前也想做这样的事情,由于知识太少,觉得好象不太可能,现在你真的给我上可一课。  
  有个很蠢笨的办法,就是把你获得的frame的代码保存到本地,然后浏览本地的文件,取得table里的innerText不知道行不行呢。也不知道能不能这个样子,就是WebBrowser1的内容不是浏览得来的,而是自己写进去的,如果行的话就不用保存成本地文件了,直接写进去,然后分析就行了。  
  有好的解决办法以后希望能告诉我,谢谢你了。  
  我的邮箱是fayeflash@126.com。QQ是:12416204。谢谢你。Top

6 楼fayeflash(我爱阿菲)回复于 2004-11-10 10:15:58 得分 0

另外,用innerText是不是应该好些?Top

7 楼kdb9813(菜头)回复于 2004-11-10 10:58:33 得分 0

解决了.不过是另开的一个贴子的办法解决的.爽.    
  to:fayeflash(我爱阿菲)  
  方法见:http://community.csdn.net/Expert/topic/3537/3537880.xml?temp=.4540979Top

8 楼kdb9813(菜头)回复于 2004-11-10 11:03:27 得分 0

to:fayeflash(我爱阿菲)  
  第一,用参考代码一的方法得到iframe的HTML源代码,类型为IHTMLDocument,  
  第二,使用IHTMLTABLE,IHTMLRows,就可以正确得到网页表格数据了.就算表格数据是由javascript等脚本赋值也可以正确提出数据。  
  结贴!!!Top

相关问题

  • 一个Table表格问题
  • create table 表格名称(......)
  • 关于iframe中建表格的问题
  • <***--有办法对HTML<table>标签描述的表格中的单元格定位吗?--***>
  • 如何用vbA把html的表格,转换成word表格?
  • 在.NET中如何打TABLE表格?
  • 关于programmable table(可编程表格),急
  • HTML表格的跨行问题
  • html表格边框颜色问题
  • 一个HTML表格效果的问题?

关键词

  • 表格
  • 网页
  • 数据
  • 代码
  • document
  • 解决
  • framewin
  • 提取
  • fayeflash
  • framedis

得分解答快速导航

  • 帖主:kdb9813
  • zwb666
  • fayeflash

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
x 提问