天马行空工作室

 找回密码
 加入天马
搜索
查看: 2821|回复: 0

TIdhttp抓取网页举例-【传送门】

[复制链接]
发表于 2012-10-26 21:22:34 | 显示全部楼层 |阅读模式
TIdhttp是delphi get请求的控件,可以高效抓取网页。
举例如下:
  1. procedure TForm1.StartClick(Sender: TObject);
  2. var
  3.   url:string;
  4.   i:integer;
  5.   s:TStringList;
  6. begin
  7.   isstop := false;
  8.   if not (start_num=-1) then i :=start_num
  9.   else i := se1.Value;
  10.   if (myurl.ItemIndex=0) then url1 :='ChuanSongMen' else
  11.   if (myurl.ItemIndex=1) then url1 :='WooYun' else url1 :='other';
  12.   CreateDirectory(PChar(p+url1),nil);
  13.   IdHTTP1 := TIdhttp.Create(nil);
  14.   s:=TStringList.Create();
  15.   while (abs(i)<abs(se2.Value+1)) do
  16.     if (not isstop) then
  17.     try
  18.       url :=  'http://211.146.5.61:7001/gdexam/kwgl/ksbmbprint.do?method=printBmb&ksid='+sn(IntToStr(abs(i)),8);
  19.       s.Text :=Utf8ToAnsi(IdHTTP1.Get(url));
  20.       s.SaveToFile(p+url1+'\'+url1+'-'+sn(IntToStr(abs(i)),8)+'.htm');
  21.       ST.Panels[1].Text := '进度:'+FormatFloat('0.00',abs(i)/abs(se2.Value)*100)+'%';
  22.       LST.Items.Add(sn(IntToStr(abs(i)),8));
  23.       sleep(10);
  24.       url := '';
  25.       i := i+1;
  26.       s.Clear;
  27.       Application.ProcessMessages;
  28.     except
  29.     end else
  30.     begin
  31.       start_num := i;
  32.       exit;
  33.     end;
  34. end;
复制代码
具体程序下载:http://tmxk.org/thread-704-1-1.html
您需要登录后才可以回帖 登录 | 加入天马

本版积分规则

Archiver|手机版|小黑屋|天马行空工作室 ( 京ICP备12003429号  

GMT+8, 2020-7-15 17:01 , Processed in 0.026587 second(s), 22 queries .

Powered by Discuz! v8

© 2010-2014 TIdhttp抓取网页举例-【传送门】 - Delphi 天马行空工作室

快速回复 返回顶部 返回列表