求教获取网页内表格中数据

bbsaac 2009-06-12 10:21:21
webbrowser 加载的网页显示有一表格,要分别读出表格中数据。

源码中一段循环代码:
str=str+'<td height="24" align="center">'+CLA003n[QCODEn[i]].substring(0,10)+'</td>';
str=str+'<td align="center">'+CLA002n[QCODEn[i]]+'</td>';

CLA003n[]应该是个变量数组吧,如果能读取这个变量的值是不是就可以得到表格中数据了?

可使用过:
ang = WebBrowser1.Document.getelementbyid("cla003n[i]").innertext
报错:对象变量未设置,什么原因呢?语句有错误吗?
求教各位老师,指点一下,还有什么方法可以读出这个表中的数据?谢谢了。
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
一笑拔剑 2009-06-13
  • 打赏
  • 举报
回复
用这个办法点ads?

你gg不想要了?
lyserver 2009-06-13
  • 打赏
  • 举报
回复
看了你的私信了,由于这个页面使用了AJAX技术,所以使用了Timer提取数据,代码如下:
Option Explicit
Private Sub Form_Load()
Me.Timer1.Enabled = False
Me.Timer1.Interval = 50
Me.WebBrowser1.Navigate2 "http://www.zhcw.com/lottery/3d_history.htm"
End Sub

Private Sub Timer1_Timer()
Dim i As Long, j As Long
Dim div As Object, tbl As Object, row As Object, cell As Object

Set div = Me.WebBrowser1.Document.getElementById("datapage")
If div.childNodes.length > 0 Then Me.Timer1.Enabled = False
Set tbl = div.childNodes(0)
If tbl.rows.length > 1 Then
Timer1.Enabled = False
For i = 0 To tbl.rows.length - 1
Set row = tbl.rows(j)
For j = 0 To row.cells.length - 1
Set cell = row.cells(j)
Debug.Print "第" & i & "行", "第" & j & "列", "值:" & cell.innerText
Next
Next
End If
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If InStr(URL, "http://googleads.g.doubleclick.net/pagead/ads") Then
Timer1.Enabled = True
End If
End Sub
xu54647265 2009-06-12
  • 打赏
  • 举报
回复
明摆着你没给TD设置ID
ScottYj 2009-06-12
  • 打赏
  • 举报
回复
不明白,帮顶
simon__sun 2009-06-12
  • 打赏
  • 举报
回复
路过顶一下
lyserver 2009-06-12
  • 打赏
  • 举报
回复
给你一段显示所有表格中单元格信息的代码,据此分析后提取你需要的数据:
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
Dim i, j, k
Dim objTables, objTable, objRow, objCell
Set objTables = Me.WebBrowser1.Document.getElementsByTagName("TABLE")
For i = 0 To objTables.length - 1
Set objTable = objTables(i)
For j = 0 To objTable.rows.length - 1
Set objRow = objTable.rows(j)
For k = 0 To objRow.cells.length - 1
Set objCell = objRow.cells(k)
Debug.Print "第" & i & "个表格", "第" & j & "行", "第" & k & "列", "值:" & objCell.innerText
Next
Next
Next
End Sub

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧