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

[复制链接]
查看11 | 回复1 | 2021-1-27 06:05:15 | 显示全部楼层 |阅读模式
自己没事搞了采集网站数据的小程序。试用过程中发现有不稳定的地方。而且几率很大!
测试出来是在将网站数据转码的过程中出现的问题,但是不知道是为什么。因为同一个网站有时候正常,有时候不正常!
采集如下网站里面招标信息列表,然后获取每一个招标信息的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的问题,后来大量测试发现问题是在.writestrBod这一句,也就是说有几率在将直接采集到的网页数据写入Objstream对象时,会一直停在这一步出现问题。。造成后面的无法经行。。。
哪位大神有没有什么见解啊?
================大概的过程如下=====================
.............................
1.先通过winhttpget主页,通过一定正则匹配获取该页所有招标信息的url及相关信息
将获取到的所有url作为一个MatchCollection
循环该MatchCollection
循环体中:winhttp.open"get"每一个url
获取的网页数据winhttp.responsebody转码时会卡主【偶尔,一共20个url,要么会正常循环完。要么就卡住。任意一个url的时候都可能】
转码函数:
PublicFunctionBytesToBstr(strBody,CodeBase)
DimObjStream
SetObjStream=CreateObject("Adodb.Stream")
WithObjStream
.Type=1
.Mode=3
.open
'HeHe.StatusBar1.Panels(3).Text=HeHe.m&"TestStatusAAAAAAAAA"
.writestrBod'会卡住的地方
'HeHe.StatusBar1.Panels(3).Text=HeHe.m&"TestStatusBBBBBBBBB"
.position=0
.Type=2
.Charset=CodeBase
BytesToBstr=.ReadText
.Close
EndWith
SetObjStream=Nothing
EndFunction

分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:05:15 | 显示全部楼层
webbrowser好像更好用,有树状的内容结构,知道了网页组织结构,转到相应数据比较简单
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行