【VB6】使用VB6创建和访问Dom树【爬虫基础知识】
2015-06-07 20:59
519 查看
使用VB6创建和访问Dom树
关键字:[b]VB,DOM,HTML,爬虫,IHTMLDocument[/b]我们知道,在VB中一般大家会用WebBrowser来获取和操作dom对象。
但是,有这样一种情形,却让我们纠结不已:
我们需要做爬虫,然后爬虫不需要太高的效率,但是我们被复杂的正则表达式给弄的头晕眼花。
不知道何去何从。
今天,下定决心研究下html的解析,终于掌握了对IHTMLDocument等接口对象的使用。
源代码放在:http://www.extencent.com
具体的文章将会放在博客园以及CSDN博客。主要是考虑到贴吧对代码的支持特别的弱。
示例代码中使用了WebCode这个类,这个类的代码可以在以下两个地方找到:
网站 | 网址 |
---|---|
我的代码分享站 | http://www.extencent.com/ |
CSDN代码片 | https://code.csdn.net/snippets/686971 |
Private Sub btnTryLuck_Click() 'html代码 Dim htmlCode As String 'html Dom树对象 Dim myhtml As New HTMLDocument 'html IHTMLElementCollection 对象集合 Dim tables As IHTMLElementCollection 'html HTMLTable 表 Dim table As HTMLTable 'html HtmlRow 行 Dim row As HTMLTableRow 'html HTMLTableCell 单元格 Dim cell As HTMLTableCell 'define temp variables Dim i As Long '获取html代码 htmlCode = mWeb.GetHttpCode("http://kaijiang.zhcw.com/zhcw/html/ssq/list.html", "smart") '加载html代码到dom树(通过这个赋值的方法,就完成了DOM树的构建) '真的比写正则表达式要方便 myhtml.body.innerHTML = htmlCode '这个时候,如果你对JavaScript操作熟悉就更好了 '我们通过getElementsByTagName这样的操作 '来获取含有彩票中奖信息的表格,非常方便 '不过注意,因为是根据TagName获取的,所以是一个集合 Set tables = myhtml.getElementsByTagName("table") '判断集合长度超过零,说明有数据,这个时候才进行下一步操作 If tables.Length > 0 Then '大家记住了,这里操作的都是对象,所以要用Set来进行赋值。 '这里,我们获取到了第一个表格对象 '因为经过观察,中奖信息就在第一个表格中 Set table = tables(0) '如果这个表格有超过3行,才继续提取信息 '为什么?因为第一行,第二行都是表格标题部分 '这个大家可以去Chrome上面看DOM树。 If table.rows.Length > 3 Then '我们从序号2开始(也就是第三行,别忘了是从0开始的) For i = 2 To table.rows.Length - 2 '这里同样是Set,获取了某一行 Set row = table.rows(i) '这里,将第3个(序号为2)单元格中的文本输出 Debug.Print row.cells(2).innerText Next i End If End If End Sub '以上,
相关文章推荐
- 【VB.NET机房重构】DataGridView数据显示
- Visual Basic .NET で ADO レコードセットを使用する方法
- Genymotion 出现无法找到vbox的错误解决方案
- IEEE 802.1 AVB 相关协议简介
- vbs查看系统开关机时间
- 【VB.NET机房重构】编程注释
- vb timer控件
- VBA设置单元格格式
- 【VB.NET机房重构】从字符串到类型double的转换无效?
- 关于 Excel 2003 vba usedrange属性
- opengl顶点数据传送和着色器处理(vao,vbo)
- 如何在Excel中使用VB宏连接SAP系统
- 【VB.NET机房重构】ADO.NET
- vb里面图片怎么使按钮上面图片交替显示的代码
- 下了个蓝屏代码查看工具,就中病毒了。。。什么鬼病毒,竟然还是用的VBS
- ubuntu rmvb
- 安装VirtualBox出错提示Unable to load R3 module ...VBoxDD.dll (VBoxDD):GetLastError=1790
- CvHaarTrainingData和CvBackgroundData的区别
- win7下面安装One lingo.msi出现Error:2738 Could not access VBScript run time for custom action
- 利用vbs 运行程序 并使窗口隐藏