sex123 发表于 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)

sex123 发表于 2014-7-24 20:21:32

返回为空字符串不就是读取失败吗?再在外层加一个for循环,如果读取返回值不为空则跳出循环(exitloop)
时空之门 发表于 2014-7-24 19:44 http://www.autoitx.com/images/common/back.gif


    读不到正常的网页,返回值不一定为空吧?
我打算用stringlens通过判断返回值的长度,如果返回的字符长度太小,则为读取失败,这样应该可行的吧?

时空之门 发表于 2014-7-24 22:14:57

毕竟这个用的是下载网址,网络不通时下载到的字节数@extended 必然为空
你说的读不到正常网页指什么?

sex123 发表于 2014-7-24 22:34:13

毕竟这个用的是下载网址,网络不通时下载到的字节数@extended 必然为空
你说的读不到正常网页指什么?
时空之门 发表于 2014-7-24 22:14 http://www.autoitx.com/images/common/back.gif


    就是读一半,或者跳转,或者其他情况

hnfeng 发表于 2014-7-25 09:08:33

如果是我,不用那个InetReadLocal $i_F = InetGet(网址, 临时文件, 1, 1)
Do
        Sleep(250)   ; 延迟250毫秒检测是否下载成功,不成功就重来,直至超时
Until InetGetInfo($i_F, 2)
If InetGetInfo($i_F, 3) Then
        成功
Else
        下载失败
EndIf延迟时间那里,你也可以改为重复几次等条件
页: [1]
查看完整版本: 如何反复读取网页,直到网页读取成功??