diandiand163 发表于 2014-9-18 18:58:07

怎么解决 $oHTTP.Send^ ERROR 这种错误啊。我要疯了。

本帖最后由 diandiand163 于 2014-9-18 19:04 编辑

代码如下:每行的URL都存在,有的打开页面不存在,但会跳转到首页,读到很慢的网址就会出错啦。怎么解决?这个问题困扰我好久了,求救啊。#AutoIt3Wrapper_UseX64=n
HotKeySet("{esc}", "_hotkey")
Func _hotkey()
       Exit
EndFunc   ;==>_hotkey

Local $file = FileOpen(@ScriptDir&"\m2.txt", 0)

For $i=346 To 15084

Local $line = FileReadLine($file,$i)
$url='http://'&$line&'.b2b.youboy.com/contactus.html';网址

                $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")   ;microsoft.xmlhttpMSXML2.XMLHTTPMSXML2.ServerXMLHTTP
      $oHTTP.Open("get", $url, False)
                $oHTTP.Option(6)=0
          $oHTTP.setRequestHeader("Accept", "text/html, application/xhtml+xml, */*")
          $oHTTP.setRequestHeader("Accept-Language", "zh-CN")
                $oHTTP.SetTimeouts (9999999,9999999,9999999,9999999)
                $oHTTP.Send
                $oHTTP.WaitForResponse   ;等待返回内容
      $htmlstr =   ($oHTTP.responsetext)
if @error then ContinueLoop       
ToolTip ("第"&$i&"行",0,0,"提示")
ClipPut ($i)
Next每行的URL都存在,有的打开页面不存在,但会跳转到首页,读到很慢的网址就会出错啦。怎么解决?这个问题困扰我好久了,求救啊。

diandiand163 发表于 2014-9-18 19:32:43

精简成这样也不行啊。
#AutoIt3Wrapper_UseX64=n
HotKeySet("{esc}", "_hotkey")
Func _hotkey()
       Exit
EndFunc   ;==>_hotkey

Local $file = FileOpen(@ScriptDir&"\m2.txt", 0)

For $i=380 To 15084
Dim $oHTTP

Local $line = FileReadLine($file,$i)
$url='http://'&$line&'.b2b.youboy.com/contactus.html';网址

                $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")   ;microsoft.xmlhttpMSXML2.XMLHTTPMSXML2.ServerXMLHTTP
      $oHTTP.Open("get", $url, True )
                $oHTTP.Option(4) = 13056
                $oHTTP.Option(6)=True
       
                $oHTTP.SetTimeouts(60000, 60000, 60000, 3000 )
                $oHTTP.Send()
       
If @error Then

               MsgBox(0, "错误", "超时")
                       Else
                               ToolTip ($i,0,0,"读取行提示")
      EndIf
Next

diandiand163 发表于 2014-9-18 19:33:14

狗日的,到底哪里出了问题啊。

MicroBlue 发表于 2014-9-18 19:49:09

看下有没有http超时时间的设置项

chamlien 发表于 2014-9-18 22:07:55

漏了一行,在send后一行加上获取数据BinaryToString($oHTTP.responseBody, 1)

diandiand163 发表于 2014-9-19 09:22:10

汗,不用获取数据都会报错,只是发送请求遇到访问慢的网址就会中断退出。和楼上说的这个一点关系也没有,不过还是要谢谢你的解答。

light_he 发表于 2014-9-19 11:52:16

看不懂要实现什么
如下代码可读取网页数据,需要什么,再通过正则分析取得自己所需要的数据就可以了_main()
Exit

Func _main()

               
      $Url='http://www.autoitx.com/thread-45338-1-1.html'
      Local $a = _Winhttp($Url)
           ConsoleWrite($a)

EndFunc   ;==>_main




Func _Winhttp($Url)
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET",$Url)
$oHTTP.Send()
$Source = $oHTTP.responseBody
$Source = BinaryToString($Source, 1)
Return $Source
EndFunc
页: [1]
查看完整版本: 怎么解决 $oHTTP.Send^ ERROR 这种错误啊。我要疯了。