【VB6】使用VB6创建和访问Dom树【爬虫基础知识】

前端之家收集整理的这篇文章主要介绍了【VB6】使用VB6创建和访问Dom树【爬虫基础知识】前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

使用VB6创建和访问Dom树

关键字:VBDOMHTML爬虫IHTMLDocument

我们知道,在VB中一般大家会用WebBrowser来获取和操作dom对象。
但是,有这样一种情形,却让我们纠结不已:
我们需要做爬虫,然后爬虫不需要太高的效率,但是我们被复杂的正则表达式给弄的头晕眼花。
不知道何去何从。

今天,下定决心研究下html的解析,终于掌握了对IHTMLDocument等接口对象的使用。

代码放在:http://www.extencent.com
具体的文章将会放在博客园以及CSDN博客。主要是考虑到贴吧对代码支持特别的弱。

示例代码中使用了WebCode这个类,这个类的代码可以在以下两个地方找到:

网站 网址
我的代码分享 http://www.extencent.com/
CSDN代码 https://code.csdn.net/snippets/686971

本次分享的是这样的代码

  1. Private Sub btnTryLuck_Click()
  2. 'HTML代码
  3. Dim htmlCode As String
  4. 'html Dom树对象
  5. Dim myhtml As New HTMLDocument
  6. 'html IHTMLElementCollection 对象集合
  7. Dim tables As IHTMLElementCollection
  8. 'html HTMLTable
  9. Dim table As HTMLTable
  10. 'html HtmlRow 行
  11. Dim row As HTMLTableRow
  12. 'html HTMLTableCell 单元格
  13. Dim cell As HTMLTableCell
  14. 'define temp variables
  15. Dim i As Long
  16. '获取HTML代码
  17. htmlCode = mWeb.GetHttpCode("http://kaijiang.zhcw.com/zhcw/html/ssq/list.html","smart")
  18. '加载HTML代码到dom树(通过这个赋值的方法,就完成了DOM树的构建)
  19. '真的比写正则表达式要方便
  20. myhtml.body.innerHTML = htmlCode
  21. '这个时候,如果你对JavaScript操作熟悉就更好了
  22. '我们通过getElementsByTagName这样的操作
  23. '来获取含有彩票中奖信息的表格,非常方便
  24. '不过注意,因为是根据TagName获取的,所以是一个集合
  25. Set tables = myhtml.getElementsByTagName("table")
  26. '判断集合长度超过零,说明有数据,这个时候才进行下一步操作
  27. If tables.Length > 0 Then
  28. '大家记住了,这里操作的都是对象,所以要用Set来进行赋值。
  29. '这里,我们获取到了第一个表格对象
  30. '因为经过观察,中奖信息就在第一个表格中
  31. Set table = tables(0)
  32. '如果这个表格有超过3行,才继续提取信息
  33. '为什么?因为第一行,第二行都是表格标题部分
  34. '这个大家可以去Chrome上面看DOM树。
  35. If table.rows.Length > 3 Then
  36. '我们从序号2开始(也就是第三行,别忘了是从0开始的)
  37. For i = 2 To table.rows.Length - 2
  38. '这里同样是Set,获取了某一行
  39. Set row = table.rows(i)
  40. '这里,将第3个(序号为2)单元格中的文本输出
  41. Debug.Print row.cells(2).innerText
  42. Next i
  43. End If
  44. End If
  45. End Sub
  46. '以上,

猜你在找的VB相关文章