Sub getHTML(url_str As String)
     Dim doc As Object
     Web.Navigate url_str
     getCODE FolderName, localfiles
End SubPrivate Sub getCODE(path_name As String, localFile As String)
     Dim doc As Object
     If InStr(Web.Document.documentElement.innerHTML, "无法显示") > 0 Then
          getHTML sUrt
     End If     Set doc = Web.Document
     Set objhtml = doc.body.createTextRange()     If Not IsNull(objhtml) Then
          Open path_name & "\" & localFile For Output As #1
          Print #1, objhtml.htmlText;
          Close #1
     End If
End Sub我是用上面两个sub 分别load网页在webbrowser控件里面显示-为了防止timeout 反复load直到load complete。然后再保存到本地指定目录中 生成txt文档。
现在发现在gethtml这个sub里面浪费了大量的时间 这个是什么问题啊 我直接用ie打开那个连接都没有那么多时间阿,有什么办法提升效率吗?

解决方案 »

  1.   

    我最近才开始用VB和网络控件的,遇到问题到这里来问,看到这个
    就顺便说说我的用法吧,可能对你会有帮助我试过连续加载很保存不同的页面,感觉使用Web.Navigate 之后delay一下比较有效率
        Web_Browser.Navigate url_str
        Web_Browser.Refresh  '我发现refresh一下更有效…这个只是个人用下来的感觉
        Timer1.Interval = 1000
        Timer1.Enabled = True  '在里面放Timer1.Enable = False
        Do
        DoEvents
        Loop While Timer1.Enabled = TrueDo While Web_Browser.Busy
    If form_quit = True Then GoTo sub_end
    DoEvents
    Loop
      

  2.   

    第一次在这里发帖,不小心点了一下就发出去了,怎么修改不会,接上面的回帖继续吧……If form_quit = True Then GoTo sub_end这个不是的……可以忽略
    然后就可以用你那个
    Set doc = Web.Document
    Set objhtml = doc.body.createTextRange()进行保存了
    另外,把ie设置里面高级部分的显示图片音乐之类的关闭,会大大提高效率……初学者,仅供参考……^__^