爬虫用得着用indy这么庞大的组件吗? indy有些版本是会有BUG的,这东西一直在改,但也可能是你的程序有问题

解决方案 »

  1.   

    用专业的  EurekaLog  测试过 无任何内存泄露  这里只是获取网页数据get  莫非是delphi bug ? 问题是时好时坏  很不稳定  我就纳闷了  实在搞不懂哪的原因   
      

  2.   

    再用ics做同样的工作测试测试
      

  3.   

    我也做爬虫 delphi做的 加我吧 1791272808
      

  4.   

    刚才用  xe2   d7 分别编译了工程 测试 内存还是增加 检测代码N遍 没有 忘记free的地方   EurekaLog 也说明了这一点 莫非是 indy有问题 ?
      

  5.   

    不报不见得就没有内存泄露
    比如
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      TButton.Create(self);
    end;
    这个在程序关闭时,FastMM就不会报但
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      TButton.Create(nil);
    end;
    就会报实际上,前一种反复运行内存使用当然会上涨
      

  6.   

       控件全部是Create(nil);方式 
      

  7.   

    找到原因了  因为以下代码
     
    function THtmlThreade.HtmlToText(HtmlText: WideString): WideString;
    var
      V: OleVariant;
      Document: IHTMLDocument2;
    begin
      Result := HtmlText;  if HtmlText = '' then
        exit;
      CoInitializeEx(nil, COINIT_MULTITHREADED);
      Document := CoHTMLDocument.Create as IHTMLDocument2;
      try
        V := VarArrayCreate([0, 0], varVariant);
        V[0] := HtmlText;
        Document.Write(PSafeArray(TVarData(V).VArray));
        Document.Close;
        Result := trim(Document.body.outerText);
      finally    Document.clear ;
        Document := nil;
        CoUninitialize;  end;end;  这个函数 是html转 纯文字的 从网上copy的   我是再线程中用到了这个函数 测试发现 注释改函数 内存正常   有没有其他函数代替这个  
      

  8.   

    我只知道 这段代码有问题  大牛帮我分析下 为啥这样   莫非 线程里 用  CoInitializeEx  的问题 ? 怎么解决
      

  9.   

    用WinDbg测试下就知道哪块内存泄露了,具体的可以试试umdh,它可以分析两个时间点内存变化点。
    设置下生成符号文件,这样崩溃的时候Windbg可以直接比对符号文件看出哪里崩溃了。
      

  10.   

    没想到现在还有这么多用delphi的朋友
      

  11.   

    IHTMLDocument2实际上是用的webbrowser,而微软的Webbrowser的内存释放不掉是公知的.
    建议你采用其他的Html解析器来解析你的Html.
      

  12.   

    试试Chromium,SVN:
    http://delphichromiumembedded.googlecode.com/svn
      

  13.   

    这个倒是完美.但是太大了.带20MB的DLL.
      

  14.   

    万分感谢  测试结果 已经回你邮箱了  text对 但是没有回车换行 
      

  15.   


    <TBODY>
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>FMT</TD>
    <TD class=td1>BK</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>LDR</TD>
    <TD class=td1>-----nam0&nbsp;22-----&nbsp;&nbsp;&nbsp;450&nbsp;</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>001</TD>
    <TD class=td1>006755195</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>005</TD>
    <TD class=td1>20130820162708.0</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>010</TD>
    <TD class=td1>|a 978-7-302-31478-3 |d CNY29.00</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>100</TD>
    <TD class=td1>|a 20130807d2013&nbsp;&nbsp;&nbsp;&nbsp;em&nbsp;y0chiy50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ea</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>1010</TD>
    <TD class=td1>|a chi</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>102</TD>
    <TD class=td1>|a CN |b 110000</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>105</TD>
    <TD class=td1>|a y&nbsp;&nbsp;&nbsp;z&nbsp;&nbsp;&nbsp;000yy</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>106</TD>
    <TD class=td1>|a r</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>2001</TD>
    <TD class=td1>|a Delphi程序设计及应用 |b 专著 |f 刘苗苗,邢煜,张永生等编著 |9 Delphi cheng xu she ji ji ying yong</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>210</TD>
    <TD class=td1>|a 北京 |c 清华大学出版社 |d 2013</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>215</TD>
    <TD class=td1>|a 14,262页 |d 26cm</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>300</TD>
    <TD class=td1>|a 计算机应用21世纪高等学校规划教材</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>330</TD>
    <TD class=td1>|a 本书共15章,主要内容包括:Delphi程序设计基础知识、Object Pascal语言基础知识、基本组件的使用、用户界面的设计、数组、过程与函数、对话框的使用、菜单栏、工具栏、状态栏、单文档和多文档界面的设计、图形图像与多媒体技术、文件操作和数据库编程。</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>6060</TD>
    <TD class=td1>|a 软件工具 |x 程序设计 |x 高等学校 |j 教材</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>6060</TD>
    <TD class=td1>|a 软件工具</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>6060</TD>
    <TD class=td1>|a 程序设计</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>6100</TD>
    <TD class=td1>|a Delphi</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>690</TD>
    <TD class=td1>|a TP311.561 |v 5</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>701 0</TD>
    <TD class=td1>|a 刘苗苗 |4 编著 |9 liu miao miao</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>701 0</TD>
    <TD class=td1>|a 邢煜 |4 编著 |9 xing yu</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>701 0</TD>
    <TD class=td1>|a 张永生 |c (计算机软件) |4 编著 |9 zhang yong sheng</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>090</TD>
    <TD class=td1>|a TP311.56 |b lmm</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>096</TD>
    <TD class=td1>|a TP311.56 |b lmm</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>801 0</TD>
    <TD class=td1>|a CN |b ZL |c 20130724</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>CAT</TD>
    <TD class=td1>|a ZWCFWB1 |b 01 |c 20130807 |l NLC01 |h 1328</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>CAT</TD>
    <TD class=td1>|a CRH3 |b 60 |c 20130820 |l NLC01 |h 1627</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>049</TD>
    <TD class=td1>|a A330000ZJL |b UCS01006125313 |c 012011213183</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>OWN</TD>
    <TD class=td1>|a ZB301</TD></TR><!-- filename: full-000-body -->
    <TR>
    <TD id=bold class=td1 width="5%" noWrap>SYS</TD>
    <TD class=td1>006755195</TD></TR><!-- filename: full-set-tail --><!-- publish section 这里的数据是我要的  用你的 处理后 text 都在一行了  没法区分了 我是 每个 tr 单独处理数据<TR>
    <TD id=bold class=td1 width="5%" noWrap>210</TD>
    <TD class=td1>|a 北京 |c 清华大学出版社 |d 2013</TD></TR><!-- filename: full-000-body -->
      

  16.   

    经测试 现在完全没有问题了 内存不再增大 软件稳定运行 。 确实是 mshtml 的问题  感谢  武稀松 技术指导 这里不得不说 王哥的代码 一级棒。分给你了
      

  17.   

    发给我一个吧,我现在也遇到这问题了,谢谢,邮箱:[email protected]
      

  18.   

    楼主能否也发我一份?[email protected]