Private Sub Command1_Click()
Dim str1, str2 As String
'在任务管理器中,可以监视到每抓取一页使用内存就增加一点
'如果抓取两个小时会增加到让人无法容忍的地步
'我想肯定是WebBrowser1抓取时,没有把以前的内存释放掉
str1 = "http://www.hqew.com/home/A01/ICStock.asp?SiteID=114517&totalrecord=1081&pageno="
For i = 1 To 22  '共要抓取22页
    str2 = str1 & CStr(i)  '组合每页的网址
    With Me.WebBrowser1
        .Navigate str2
        Do While Not .ReadyState = READYSTATE_COMPLETE
            DoEvents
        Loop
    End With
Next iEnd Sub

解决方案 »

  1.   

    换个思路,用WebBrowser对象也可以实现的,不知道内存怎么样。。
    可以参考:
    http://www.huashou.com/blog/more.asp?name=joe&id=55
      

  2.   

    to  qrlvls(空 气) 
    你指的是不需要手工释放WEBBROWSER的内存吗?
    我的代码几个WebBrowser控件就可以运行的,系统消耗的内存确实越来越大
    上面这段代码是从我开发程序中抽取出来的,开始我也没有想到是WEBBROWSER控件的问题,
    以为是其他地方有对象未释放,找了了2周都没有找出来,后来我把上面的这段代码简化出来
    我确定是WEBBROWSER的问题,因为上面的代码没有对浏览的内容进行任何处理,系统消耗的内存
    却还是一直上升
      

  3.   

    IE也一样,这个是IE的问题。不建议用IE做长期自动化操作。
      

  4.   

    to jiangsheng(蒋晟.MSMVP2004Jan)
    那用什么比较方便呢?
    因为我抓取的是表格原数,用WebBrowser操作比较方便
      

  5.   

    我看了国外的网站,也有人问同样的问题,但是没有看到有人回答,这可能是微软的bug
      

  6.   

    MS的IE,MM的FLASH浏览器,为了第二次播放显示速度,很多东西都放内存里没消除,所以越来越大
      

  7.   

    to iambluebird(胡搅蛮缠) 
    那有没有解决办法呢?