VB 网页数据转码过程异常 问题。 BytesToBstr函数

onlyao 2015-10-21 03:59:08
自己没事搞了采集网站数据的小程序。试用过程中发现有不稳定的地方。而且几率很大!
测试出来是在将网站数据转码的过程中出现的问题,但是不知道是为什么。因为同一个网站有时候正常,有时候不正常!
采集如下网站里面招标信息列表,然后获取每一个招标信息的url。
【http://cz.fjzfcg.gov.cn/n/webfjs/secpag.do?sid=200100001&zzxs=fzx&level=province】
因为是ajax,数据要从winhttp.open "get" 【http://cz.fjzfcg.gov.cn/n/webfjs/queryPageData.do?rows=20&sid=200100001&zzxs=fzx&level=province&page=页码 】获得,
对获取到的多条招标信息网站get源码 并 进行循环转码。。。
在转码的过程中就会偶尔出现问题,起初还以为是winhttp.status的问题,后来大量测试发现问题是在 .write strBod 这一句,也就是说有几率在将直接采集到的网页数据 写入 Objstream对象时,会一直停在这一步 出现问题。。造成后面的无法经行。。。

哪位大神有没有什么见解啊?
================大概的过程如下=====================
.............................
1.先通过winhttp get主页,通过一定正则匹配获取该页所有招标信息的url及相关信息
将获取到的所有url 作为一个MatchCollection
循环该MatchCollection
循环体中 :winhttp.open "get" 每一个url

获取的网页数据winhttp.responsebody转码时会卡主 【偶尔,一共20个url,要么会正常循环完。要么就卡住。任意一个url的时候都可能】

转码函数:
Public Function BytesToBstr(strBody, CodeBase)
Dim ObjStream
Set ObjStream = CreateObject("Adodb.Stream")
With ObjStream
.Type = 1
.Mode = 3
.open
'HeHe.StatusBar1.Panels(3).Text = HeHe.m & "TestStatusAAAAAAAAA"
.write strBod ' 会卡住的地方
'HeHe.StatusBar1.Panels(3).Text = HeHe.m & "TestStatusBBBBBBBBB"
.position = 0
.Type = 2
.Charset = CodeBase
BytesToBstr = .ReadText
.Close
End With
Set ObjStream = Nothing
End Function
...全文
2343 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
王二.麻子 2017-03-27
  • 打赏
  • 举报
回复
webbrowser好像更好用,有树状的内容结构,知道了网页组织结构,转到相应数据比较简单

1,066

社区成员

发帖
与我相关
我的任务
社区描述
VB 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧