VB6.0:如何通过xmlhttp对象,获取多个URL的HTML代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB6.0:如何通过xmlhttp对象,获取多个URL的HTML代码?相关的知识,希望对你有一定的参考价值。

这里产生的另外一个问题就是,如何判断一个URL的代码已经获取完成,从而开始获取下一个页面呢?
有的页面打开速度很慢,比如要1分钟,那这个如何处理呢?是不是会直接报错呢?

建议采用异步方式调用xmlhttp,然后通过轮询的方式不断检测xmlhttp的readyState属性,等于4的时候就可以读取数据,完毕后就可以继续读取下一个页面了。
读取数据的时候,还应该检测xmlhttp的status属性,只有200才表示返回的是正确的网页数据,而其他如404表示未找到网页、500表示服务器错误等等。
轮询的时候可以加个计数器,达到某个数值时就跳出继续读取下个网页或结束读取,这样就可避免某个网页打开速度过慢而影响整个读取过程。

更好的解决办法是一次性声明多个xmlhttp对象变量(建议用数组),这样就可以同时获取多个网页的代码。当然这种情况下就必须使用异步调用方式。追问

额...
不好意思了,之前没看到你的答案...

参考技术A 给你推荐一个:

Function gethtmlStr(strUrl As String) '获取源码
On Error Resume Next
Dim XmlHttp As Object, stime, ntime
Set XmlHttp = CreateObject("Microsoft.XMLHTTP")
XmlHttp.open "GET", strUrl, True
XmlHttp.send
stime = Now '获取当前时间
While XmlHttp.ReadyState <> 4
DoEvents
ntime = Now() '获取循环时间
If DateDiff("s", stime, ntime) > 3 Then getHtmlStr = "": Exit Function ‘3秒获取不到就退出获取
Wend
getHtmlStr = StrConv(XmlHttp.responseBody, vbUnicode)
Set XmlHttp = Nothing
End Function
使用:
abc=getHtmlStr("http://www.baidu.com")
1、判断是否获取到内容,判断abc的值就可以了
2、加载慢超时问题,只能重复获取,时间太长,容易造成软件假死不稳定等问题。本回答被提问者采纳

vb 获取一个网页内的链接和链接名称

vb 获取一个网页内的链接和链接名称,把所有显示在listbox 中,每条显示比如:百度|http://baidu.com
请问VB代码怎么写

上面问题知道你http://zhidao.baidu.com/question/87393556.html?si=3这里回答过 但是我VB运行不了 请把代码写详细点 谢谢了

参考技术A VB读取链接,可以用webbrowser载入,然后用类似javascript的方法获取网页中的元素及其属性。
也可用inet或xmlhttp取得网页代码,然后进行文本处理,可以用正则表达式处理。来自:求助得到的回答本回答被提问者和网友采纳
参考技术A 如果你正确加载了WEB浏览器控件,是可以运行代码的

以上是关于VB6.0:如何通过xmlhttp对象,获取多个URL的HTML代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在VB6.0中获取集合的键

vb 获取网络时间较快的代码

js-ajax实现获取xmlHttp对象

vb6.0动态生成复选框并获取选中的值

vb6.0数据库开发 一个窗体上有一个combobox 多个textbox 如何实现combobox选值后 textbox自动显示其他数据

vb6.0 或者VBA 实现 改变excel 单元格格式为文本型(急急急急~!!)