| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 702 人关注过本帖
标题:小白求助网页抓取图片后浏览问题
只看楼主 加入收藏
lqreed
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-6-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
小白求助网页抓取图片后浏览问题
想做一个从网站源代码提取图片地址,然后进行浏览的软件;可是不知怎么实现上一张、下一张的效果,具体代码如下:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP, ExtCtrls, GIFImage;

const
   num=35;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  IMS:TMemoryStream;
  i,j:integer;
  k:integer=35;//一共提取了35张图片地址
  tmp,url:String;
  Gif: TGIFImage;
  function SplitPicUrl(LeftStr,RightStr,Data: string):TStringList;


implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
IdHTTP1:=TIdHTTP.Create(nil);
tmp:=IdHTTP1.Get('http://www.');
url:=SplitPicUrl('<option value="','" selected="selected">',tmp)[k];//读取第k+1个图片的地址并写入url中
IMS:=TMemoryStream.Create;
IdHTTP1.Get(url,IMS);
Image1.Picture.Assign(nil);
Gif:= TGIFImage.Create;
IMS.Position:=0;
Gif.LoadFromStream(IMS);
Image1.Picture.Assign(Gif);
IMS.Free;
Gif.Free;
IdHTTP1.Free;
end;

  function SplitPicUrl(LeftStr,RightStr,Data: string):TStringList;//将Data中LeftStr与RightStr之间的字符全部截取出来
      var
          i,j,k: integer;
          tmp: string;
      begin
           result := TStringList.Create;

           for k:=0 to 35 do//提取了35个图片地址
           begin
           i:=pos(LeftStr, Data);
           j:=pos(RightStr,Data);
           tmp:=copy(Data, i + Length(LeftStr), j - i- Length(LeftStr));
           result.Add(tmp);
           Delete(Data, 1, j - 1 + Length(RightStr));
           end;

      end;

end.

程序可以显示出网站最新的图片,但想添加两个按钮实现上一张、下一张,就捉急了!小白一枚,网上各种搜也找不到解决,只能寄希望于各位大神了!!拜谢!
搜索更多相关主题的帖子: 图片 源代码 private Windows procedure 
2013-06-15 20:25
lqreed
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-6-15
收藏
得分:0 
自己顶一下,比如加了这一段代码,老是到IMS.Position:=0;就出错;百思不得其解!!

procedure TForm1.Button1Click(Sender: TObject);
begin
k:=k-1;
url:=urllist[k];
IdHTTP1.Get(url,IMS);
IMS.Position:=0;
Gif.LoadFromStream(IMS);
Image1.Picture.Assign(Gif);
IMS.Free;
Gif.Free;
IdHTTP1.Free;
end;
2013-06-16 08:02
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
收藏
得分:20 
确定下IMS对象有值??

大家都是朋友,有空就来坐坐!
2013-06-18 15:31
快速回复:小白求助网页抓取图片后浏览问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053770 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved