【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 ...
随机推荐
- Linux下的五个查找命令:grep、find、locate、whereis、which
原文转自 http://www.cnblogs.com/wanqieddy/archive/2011/07/15/2107071.html 1.grep grep(General Regular Ex ...
- 转载《SimpleAdapter的参数说明》
SimpleAdapter的参数说明 第一个参数 表示访问整个android应用程序接口,基本上所有的组件都需要 第二个参数表示生成一个Map(String ,Object)列表选项 第三个参数表示界 ...
- [NOIP2014]寻找道路(图论)
题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通. 2 .在满足条 ...
- bzoj2441 小W的问题
bzoj2441 按照纵坐标排序,从小到大插入数列中,每个点i维护一个data[i]表示未插入序列中横坐标小于i的数的个数(用线段树)其实点i就是“W”中第一个极小点,那么f[j]就等于1到j-1中所 ...
- Bash Shell内建命令和保留字
Bash Shell内建命令和保留字命令含义!保留字,逻辑非:不做任何事,只做参数展开.读取文件并在shell中执行它alias设置命令或命令行别名bg将作业置于后台运行bind将关键字序列与read ...
- LeetCode-Search in Rotated Sorted Array II
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
- LeetCode 【31. Next Permutation】
Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...
- IOS 制作启动画面
启动方式简述 IOS 8 及之前: Launch Images Source方式, IOS8 及之后: 1, Launch Images Source方式 : 2 , LaunchScreen. ...
- Web 应用程序中的安全向量 – ASP.NET MVC 4 系列
Web 程序运行在标准的.基于文本的协议(HTTP 和 HTML)之上,所以特别容易受到自动攻击的伤害.本章主要介绍黑客如何滥用应用程序,以及针对这些问题的应对措施. 威胁:跨站脚本 ...
- ApiResponse 在 Swagger 1 和Swagger 2中的不同
在1中随意写code , 在 2中 会提示 com.google.common.util.concurrent.UncheckedExecutionException: java.lang.Illeg ...