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

vb 如何抓取网页form里的表格数据

vb 如何抓取网页form里的表格数据??
如<form name="dfd" post="\h.htnl"> 
    <td> 123 </td>
   </form>
  如何抓取数据“123”呢?请教各位大侠了,先谢过。 不好意思,搞错了一个地方。
如<form name="dfd" post="\h.htnl">  
  <table>
  <td> 123 </td>
 </table>  
</form>
  如何抓取数据“123”呢,tabel 什么标示都没有,ID,Name都没有?请教各位大侠了,先谢过。 xmlhttp啊。或者WEBBROWER,网上教程一大堆。 找123两边的特征啊,你是怎么找到123的程序就是怎么找的。找到123前面字符的特征,再找后面字符的特征,用MID处理字符串就能找到123 因为form有name,且还有其他属性,所以可以先取到form对象,再取form下的table,因为form下只有一个table.
还可以遍历DOM的td元素.

如果html符合xml规范,还可以用xml Dom查询到.
直接分析字符串,或用正则也能搞定吧,方法多多 可用正则表达式,取出网页源码后,过滤掉所有<>内的内容。 ID总是有的,如果不是显式的赋值,哪么默认就是0 1 2 ............ document.getElementByName("dfd").childNodes[0].childNodes[0].innerText
引用 7 楼 sushy001 的回复:
document.getElementByName("dfd").childNodes[0].childNodes[0].innerText
这样就行? Private Sub Command1_Click()
a = "<form name=""dfd"" post=""\h.htnl""><table><td> 123 </td></table></form>"
b = InStr(a, "<td>")
c = InStr(a, "</td>")
MsgBox Replace(Replace(Mid(a, b), "<td>", ""), Mid(a, c), "")

End Sub


简单地写了一下,根据你的要求,但是还有很多别的方法的。 Public Function FindStrMulti$(Strall$, FirstStr$, EndStr$, SplitStr$) '提取字符串或网页源代码中所有指定代码
  '参数
  '总文本,起始字符串,终止字符串,分隔符
  Dim i&, j&
  j = 1
  Do
    i = InStr(j, Strall, FirstStr)
    If i = 0 Then
      Exit Do
    End If
    i = i + Len(FirstStr)
    j = InStr(i, Strall, EndStr)
    If j > 0 Then
      FindStrMulti = IIf(Len(FindStrMulti) > 0, FindStrMulti & SplitStr, "") & Mid(Strall, i, j - i)
    Else
      Exit Do
    End If
  Loop
End Function


这个函数可以截取指定字符串之间的内容哦

msgbox FindStrMulti(str1, "<td>", "</td>", "") WEBBROWSER1.document.getElementsByTagName("table")(2).rows(0).cells(2).innerText

'rows代表行
'cells代表列
'自己修改一下012这些数据即可. 你在哪儿抓取啊?
客户端和服务端的方法是不一样的。 显然是客户端,而且还是vb内嵌webbrowser的形式。方法有二:
1.直接dhtml方式访问获取,参考11楼。
2.用document.body.innerhtml得到页面源代码,然后用vb字符串处理函数分析取得,或者用正则。

另外如果不用webbrowser的话可以用xmlhttp下载得到页面源代码,然后处理方法同上面的2。
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,