VB-WebBrowser实用函数:获取网页可见文本

4星 · 超过85%的资源 需积分: 50 178 下载量 102 浏览量 更新于2024-09-27 2 收藏 663B TXT 举报
在VB编程中,WebBrowser 控件是一个强大的工具,它允许开发者在应用程序中嵌入并显示网页内容。然而,有时我们需要获取网页的实际内容,而非HTML源代码。本文介绍了一个实用的VB函数,用于从指定URL获取网页的文本内容。 首先,我们来看`GetBody`函数。这个函数接受两个参数:URL(必需)和编码(可选,默认为"GB2312")。它的主要流程如下: 1. 创建一个`Microsoft.XMLHTTP`对象(ObjXML),这是一种用于异步HTTP请求的对象,可以用来发送GET请求到指定的URL。 2. 设置请求的类型为GET,URL为传入的地址,并设置错误处理模式为忽略错误(OnErrorResumeNext),以便在出现网络问题时继续执行其他代码。 3. 设置特定的请求头,这里设置了"If-Modified-Since"字段,这有助于优化重复请求,避免不必要的数据传输。 4. 执行GET请求,并将响应体赋值给`ResponseBody`属性,该属性包含的是服务器返回的网页内容。 5. 使用`BytesToBstr`函数将响应体(`.ResponseBody`)转换为字符串,考虑到可能的字符编码差异,通过`Coding`参数指定目标字符集(默认为GB2312)进行转换。 6. 最后,释放ObjXML对象,以释放系统资源。 `BytesToBstr`函数是`GetBody`中的辅助函数,它负责将接收到的二进制数据(如`.ResponseBody`)转换为字符串。它的工作原理如下: 1. 创建一个`ADODB.Stream`对象(ObjStream),这是一种用于处理二进制数据流的对象。 2. 初始化ObjStream的类型为1(代表二进制数据),设置其模式为只读(3)。 3. 打开流,写入接收到的网页内容(strBody)。 4. 将流的位置重置为0,以便从头开始读取。 5. 将流的类型更改为2(文本流),设置字符集为`CodeBase`(即传入的编码)。 6. 使用`.ReadText`方法读取整个流的内容作为字符串。 7. 关闭流,释放资源。 8. 返回转换后的字符串。 通过这两个函数组合,开发者能够方便地从网页中提取出文本内容,而无需处理复杂的HTML结构,适合于简单的数据抓取或快速展示网页主体内容的应用场景。在实际操作中,记得根据需求调整编码格式,确保正确解析和显示网页文本。