【VB6】使用VB6创建和访问Dom树【爬虫基础知识 】
使用VB6创建和访问Dom树
关键字:VB,DOM,HTML,爬虫,IHTMLDocument
我们知道,在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
'以上,
【VB6】使用VB6创建和访问Dom树【爬虫基础知识 】的更多相关文章
- js基础例子dom+原型+oop基础知识记录01
//oo:概念是计算机中对于现实世界的理解和抽象的方法 //由计算机利用编程技术发展到现在的产物 //面向对象几要素 //对象:由属性和方法组成的集合 //属性:保存数据,存储在对象内存空间中的唯一的 ...
- JS操作DOM对象——JS基础知识(四)
一.JavaScript的三个重要组成部分 (1)ECMAScript(欧洲计算机制造商协会) 制定JS的规范 (2)DOM(文档对象模型)重点学习对象 处理网页内容的方法和接口 (3)BOM(浏览器 ...
- Linux驱动之设备树的基础知识
前期知识 1. 如何编写一个简单的Linux驱动(一)--驱动的基本框架 2. 如何编写一个简单的Linux驱动(二)--设备操作集file_operations 3. 如何编写一个简单的 ...
- Treap树的基础知识
原文 其它较好的的介绍:堆排序 AVL树 树堆,在数据结构中也称Treap(事实上在国内OI界常称为Traep,与之同理的还有"Tarjan神犇发明的"Spaly),是指有一个随 ...
- c语言-树的基础知识
第一.树的定义: 1.有且只有一个称为根的节点 2.有若干个互不相交的子树,这些子树本身也是一颗树 第二.专业术语: 树的深度:从根节点到最低层,节点的层数 ,称之为树的深度. 根节点是第一 ...
- DOM树节点关系
DOM是JS中专门操作HTML页面内容的 他的三种基本使用方法是: 1. document.getElementById(''): ——>选取html页面中带有Id的属性名: 2.docum ...
- WebKit Inside: DOM树的构建
当客户端App主进程创建WKWebView对象时,会创建另外两个子进程:渲染进程与网络进程.主进程WKWebView发起请求时,先将请求转发给渲染进程,渲染进程再转发给网络进程,网络进程请求服务器.如 ...
- DOM树操作
DOM 操作 访问与树关系(节点) 绘制 DOM 树: childNodes, attributes 从一个中心元素访问其所有的直系亲属元素 访问父节点: parentNode 访问上一个兄弟节点: ...
- 从Chrome源码看浏览器如何构建DOM树
.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto } p { font-size: 1 ...
随机推荐
- Laravel框架数据库CURD操作、连贯操作使用方法
Laravel框架数据库CURD操作.连贯如何来操作了这个操作性是非常的方便简单了我们在这里来为各位介绍一篇相关的教程,具体的细节步骤如下文介绍. Laravel是一套简洁.优雅的PHP Web开 ...
- appserver安装常见的问题
安装过程: 一般下载安装包直接按照步骤安装,不过一次安装好没问题的情况很少. 1. 下载安装包百度搜索appserv 或者到以下网址下载 http://www.appservnetwork ...
- MMDrawerController在表视图和导航栏中的使用
1.如果不在APPDelegate引入MMDrawerController框架,那么就要注意在需要点击的视图控制器中的对象的获取. //工程中标签视图控制器 MainTabBarViewControl ...
- 收藏:Linux系统信息查看命令大全
系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo ...
- Codeforces Round #341 Div.2 D. Rat Kwesh and Cheese
嗯本来想着直接算出来不就行了吗 然后我想到了200^200^200....... 好吧其实也不难取两次log就行了 然后我第一次写出来log就写残了........... log里面的拆分要仔细啊.. ...
- 在不安装mysql-connector-net的情况下使用FluentData框架
最近在开发项目中使用了FluentData框架,通过使用这个框架减少了很多开发的工作量,FluentData是一个轻量级的框架操作起来的自由度很大也少了很多负责的配置.但是在开发的时候发现一个问题就是 ...
- javascript中call函数与apply
javascript中的call方法使当前对象可以调用另一个对象的方法,即改变this的指向内容 var first_object = { num: 42 }; var second_object = ...
- 转:Android开发:使用JNI读取应用签名
博文转自http://www.tuicool.com/articles/UVjme2r,感谢博主的分享 为了防止被反编译,打算把关键代码写到so里(比如加解密),在so里加上判断APk包签名是否一致的 ...
- CentOS上安装软件错误提示:configure: error: no acceptable C compiler found in $PATH
CentOS上安装软件错误提示:configure: error: no acceptable C compiler found in $PATH 因为是centos linux,默认可以采用yum方 ...
- windows下安装Composer
1.下载https://getcomposer.org/composer.phar 2.复制到php.exe所在目录 3.在php.exe所在目录新建composer.bat文件 4.打开cmd,跳转 ...