一般防盗链措施都是判断访问来路,也就是referer,这种防盗链措施只对转载/转贴有效,对于采集程序来讲,referer很容易伪造。下面简单介绍一下使用wget和php脚本采集有防盗链措施网站的图片。
1、使用wget
wget是linux下非常好用的下载工具, --help可以看到提供了大量的参数,可以很方便自定义下载,伪造来路的参数是: -E --referer,如采集www.xxx.com/logo.gif文件,完整的命令行是:
wget -E --referer http://www.xxx.com/ http://www.xxx.com/logo.gif
第一个网址是referer的参数表示从xxx.com来路访问的,后面的网址表示要下载的文件
(注:--help和--referer前面是两个-,wp把两个-自动转换成一个-了)
2、使用PHP脚本,可以使用file_get_contents函数,启用第三个参数,具体代码如下:
PHP Code复制内容到剪贴板
- <?php
- $context_options = array(
- 'http' =>
- array(
- 'method' => "GET",
- 'header' => "User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.0.04506; CIBA) Accept:*/* Referer:http://www.xxx.com/",
- ));
-
- $context = stream_context_create($context_options);
- $img = file_get_contents("http://www.xxx.com/logo.gif",FALSE,$context);
- file_put_contents("1.jpg",$img);
|