Foxtable(狐表)用户栏目专家坐堂 → DOM 读取网页数据 请教 有点甜 老师


  共有4329人关注过本帖树形打印复制链接

主题:DOM 读取网页数据 请教 有点甜 老师

帅哥哟,离线,有人找我吗?
卧美吻花
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:187 积分:1469 威望:0 精华:0 注册:2012/6/8 9:34:00
DOM 读取网页数据 请教 有点甜 老师  发帖心情 Post By:2014/10/20 21:09:00 [显示全部帖子]

Dim ObjIE As Object = CreateObject("InternetExplorer.Application")
Dim Tbl As Table = Tables("表A")
Dim R As Row
'Tbl.DataTable.DataRows.Clear
StatusBar.Message1 = "正在前往网页..."
ObjIE.Navigate("http://www.knfilters.com/search/applications.aspx?prod=69-9756TFK")
Do Until ObjIE.ReadyState = 4
    Application.Doevents
Loop
Dim Dom As Object = ObjIE.Document
Dim HTMLTbl As Object = Dom.ALL.tags("cph_dl_apps")
If HTMLTbl IsNot dbnull.value Then
    Dim RowCnt As Integer = HTMLTbl.Rows.Length
    'Tbl.StopRedraw     '取消注释此行以提高效率
    For i As Integer = 0 To RowCnt - 1
        R = Tbl.AddNew
        R("第一列") = HTMLTbl.Rows(i).Cells(0).InnerText
        R("第二列") = HTMLTbl.Rows(i).Cells(1).InnerText
        R("第三列") = HTMLTbl.Rows(i).Cells(2).InnerText
        StatusBar.Message1 = "正在获取第 " & i + 1 & "/" & RowCnt & "行数据..."
    Next
    'Tbl.ResumeRedraw     '取消注释此行以提高效率
    StatusBar.Message1 = "数据获取完成..."
    ObjIE.Quit
    Msgbox("OK")
    StatusBar.Reset
Else
   StatusBar.Message1 = "获取数据失败"
End If

原始网页是这个http://www.knfilters.com/search/applications.aspx?prod=69-9756TFK
想要读取数据放到表A
看了不少关于DOM方面的资料,还是没搞懂
麻烦帮忙看一下
这里面DOM应该怎么写?

谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
卧美吻花
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:187 积分:1469 威望:0 精华:0 注册:2012/6/8 9:34:00
  发帖心情 Post By:2014/10/20 21:14:00 [显示全部帖子]

网页结构

 回到顶部
帅哥哟,离线,有人找我吗?
卧美吻花
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:187 积分:1469 威望:0 精华:0 注册:2012/6/8 9:34:00
  发帖心情 Post By:2014/10/20 21:44:00 [显示全部帖子]

这个网页读取并不慢
我发现是用DOM的反应会很慢

刚才Q群有人说用“正则表达式”会快很多,甜老师了解否?

 回到顶部