如何使用DELPHI下载被防盗链软件保护的图片 ( 积分: 200 )

  • 主题发起人 主题发起人 xsj_by
  • 开始时间 开始时间
X

xsj_by

Unregistered / Unconfirmed
GUEST, unregistred user!
最近正在写一个采集程序,需要下载一个被防盗链软件保护的网站,它上面的图片只能在IE等到浏览器中查看,我使用IDHTTP无法直接下载,询问了一个编写防盗链软件的高手,说是可以使用HTTP协议来下载上面的图片,不知道哪位高手能写出来。
这个站的地址是:http://www.2552.com.cn
示例图片:http://www.2552.com.cn/UploadPhoto/Book/1069/4-496-1.gif
如果您写出了代码,不想在这里帖出来,可以和我的QQ联系:51795745,只要源代码测试符合要求(要求提供原代码,不是从本机缓存中提取图片),可以详谈酬劳。
 
已经沉下去了,只好自己再来顶上来。
如果HTTP协议一类的,哪位再推荐几本书看看啊?
 
帮你解决了。

在idhttp.request.customheaders中添加以下信息,
---------------所添加的信息-----------------
Cookie: EmIISProtect=OK; EmUserCard=1054930920; ASP.NET_SessionId=pude1045mcw4m2ep55akmp3q; WanerSoftLanguage=0; cck_lasttime=1170588880505; cck_count=0; sogou_ts_ads=popdate:2007%u5E742%u67084%u65E5&visits:0&keys:&all:&lasttime:0&keytimes:&poptime:0
---------------所添加的信息:over-----------------

使用相关语句测试:
---------------测试语句--------------------
procedure TForm1.Button1Click(Sender: TObject);
var
ms: tmemorystream;
begin
ms := tmemorystream.Create;
try
idhttp1.Get('http://www.2552.com.cn/UploadPhoto/Book/1069/4-496-1.gif', ms);
ms.SaveToFile('c:/1.gif');
finally
ms.Free;
end;
showmessage('ok');
end;
---------------测试语句:over--------------------
成功。
请上分。
 
直接读就可以呀
---------------
unit Unit1;

interface

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

type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Http: TIdHTTP;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
const
URL = 'http://www.2552.com.cn/UploadPhoto/Book/1069/4-496-1.gif';

procedure TForm1.Button1Click(Sender: TObject);
var
MyStream: TMemoryStream;
filename: string;
begin
filename := ChangeFileExt(ParamStr(0), '.gif');
MyStream := TMemoryStream.Create;
Http.Get(URL, MyStream);
MyStream.SaveToFile(Filename);
MyStream.Free;
end;

end.
 
楼上两位给的做法显然是会被干掉的
需要自己来配置http header
简单的方式就是仿照迅雷或flashget的握手过程,flashget1.4在未下载完时暂停可以看到全部的header对话过程,按照那个发http请求就行了
一般的防盗链是检查referred url和浏览器类型
我们自己写这个东西破解过几个,一般不是很变态的都好办
 
酬劳多少?这个是我经常碰到的问题.越离谱也许越有人钻研,所以嘛,网上就已经有了.哈哈~
 
缓存里copy
 
接受答案了.
 
Cookie: EmIISProtect=OK; EmUserCard=1054930920; ASP.NET_SessionId=pude1045mcw4m2ep55akmp3q; WanerSoftLanguage=0; cck_lasttime=1170588880505; cck_count=0; sogou_ts_ads=popdate:2007%u5E742%u67084%u65E5&visits:0&keys:&all:&lasttime:0&keytimes:&poptime:0

这个信息是怎么获取到的,我用idcookiemanager获取不全这么多信息?
 
使用sniffer软件来得到相关cookie
 
后退
顶部