我需要用Delphi编一程序,来循环获得某一IE页面上的图片,能成功获得图片表示我访问页面成功,记数.这个程序是为了测试单位时间内成功访问的次数,检测服务器能力的.那我如何获得图片呢?

解决方案 »

  1.   

    用IdHTTP
    procedure TForm1.Button1Click(Sender: TObject);
    var
      t:tmemorystream;
    begin
    t:=tmemorystream.Create;
    IdHTTP1.Get('http://www.test.com/a.bmp',t);
    t.SaveToFile('e:\temp\a.bmp');
    t.Free;
    end;
      

  2.   

    谢谢keiy()!但是这个页面后缀是 aspx,不是图片.
      

  3.   

    那就直接getaspx/后的图片就行了呀。
      

  4.   

    leizhen2004(Ray):可否解释详细一点?
      

  5.   

    只要它的aspx最终输出的是图片,就可以,如你可这样得到csdn的验证图片
    procedure TForm1.Button1Click(Sender: TObject);var
      t:tmemorystream;
    begin
    t:=tmemorystream.Create;
    IdHTTP1.Get('http://passport.csdn.net/ShowExPwd.aspx?DateTime=2006-7-26',t);
    t.SaveToFile('e:\temp\a.jpg');
    t.Free;
    end;
      

  6.   

    谢谢keiy()!那如果上面有其他的内容呢,象是文本,该怎么分解呢?
      

  7.   

    网页解释(提取网页内容)的控件有及方法有很多,我一般用正则表达式(delphi的 TRegExpr 在很多网上有下)按你的要求,只是要下图片,那只要先手工找到图片的链接就可以了
      

  8.   

    能否麻烦keiy()写一下,如何手动找到呢?我这个程序就是为了获得网页上的图片,然后判断是否是准确的,如果准确就算成功访问一次.
      

  9.   

    用IDHttp获取网页的源代码后用程序查找图片标记然后下载
      

  10.   

    gyf(NetSwimer) :你觉得在源代码里查找特定的字符串用什么方法比较好呢?
      

  11.   

    gyf(NetSwimer) :你觉得在源代码里查找特定的字符串用什么方法比较好呢?
      

  12.   

    keiy() 你真会开玩笑啊,我就是模拟用户打开页面测试服务器的能力,最大允许多少用户看到,当然是要编程序模拟了.
      

  13.   

    可能是我理解的问题,不过,IE打开网页时,它会自动打开所需的相产关链接,如CSDN的登录的校验码:
    script type="text/javascript">document.write("<img src='ShowExPwd.aspx?DateTime=2006-7-26 12:13:10&strimg=",Math.random(),"' >");</script> 
    在IE中,它会直接执行JS角本而调回图片
    而如果用IdHTTP1,它只会得到网页的源码.所以你要从中取出你要的内容,正如我上面所说,用其它控件或正则表达式,参考
    http://community.csdn.net/Expert/topic/4860/4860262.xml?temp=.6637079

    http://community.csdn.net/Expert/topic/4860/4860680.xml?temp=.8223688
    但我的理解,既然服务器是你自己的,网页也是你自己写的,单独测试整个网页中的图片部分与读到网页后再测试图片应该是类同的