
我们知道,在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 IfEnd Sub'以上,总结
以上是内存溢出为你收集整理的【VB6】使用VB6创建和访问Dom树【爬虫基础知识】全部内容,希望文章能够帮你解决【VB6】使用VB6创建和访问Dom树【爬虫基础知识】所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)