找回密码
 加入
搜索
查看: 3423|回复: 5

[IE类操作] 如何反复读取网页,直到网页读取成功??

  [复制链接]
发表于 2014-7-24 19:05:15 | 显示全部楼层 |阅读模式
如果网络不良,或者IP被暂时封了几秒,这样的情况,怎么判断网页是否读取成功,如果没有读取成功,怎么反复读取三次,直至三次均不能读取?
Local $html = BinaryToString(InetRead("http://www.ncbi.nlm.nih.gov/pubmed/24406157", 1), 1)
发表于 2014-7-24 19:44:47 | 显示全部楼层
返回为空字符串不就是读取失败吗?再在外层加一个for循环,如果读取返回值不为空则跳出循环(exitloop)
 楼主| 发表于 2014-7-24 20:21:32 | 显示全部楼层
返回为空字符串不就是读取失败吗?再在外层加一个for循环,如果读取返回值不为空则跳出循环(exitloop)
时空之门 发表于 2014-7-24 19:44



    读不到正常的网页,返回值不一定为空吧?
我打算用stringlens通过判断返回值的长度,如果返回的字符长度太小,则为读取失败,这样应该可行的吧?
发表于 2014-7-24 22:14:57 | 显示全部楼层
毕竟这个用的是下载网址,网络不通时下载到的字节数@extended 必然为空
你说的读不到正常网页指什么?
 楼主| 发表于 2014-7-24 22:34:13 | 显示全部楼层
毕竟这个用的是下载网址,网络不通时下载到的字节数@extended 必然为空
你说的读不到正常网页指什么?
时空之门 发表于 2014-7-24 22:14



    就是读一半,或者跳转,或者其他情况
发表于 2014-7-25 09:08:33 | 显示全部楼层
如果是我,不用那个InetRead
Local $i_F = InetGet(网址, 临时文件, 1, 1)
Do
        Sleep(250)   ; 延迟250毫秒检测是否下载成功,不成功就重来,直至超时
Until InetGetInfo($i_F, 2)
If InetGetInfo($i_F, 3) Then
        成功
Else
        下载失败
EndIf
延迟时间那里,你也可以改为重复几次等条件
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-27 00:25 , Processed in 0.075202 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表