php curl破解图片防盗链

防盗链

百度里面的定义是:此内容不在自己服务器上,二通过技术手段,绕过别人放广告有利也的最终页,直接在自己的有广告利益的页面向最终用户提供此内容。常常是一些小网站来盗取一些有实力的大网站的地址(比如一些因为、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量

  这样可以减轻自己网站服务器的压力,为什么?毕竟带宽是有有限的,尤其是上行带宽

防盗链的实现原理:

http标准协议中有一个叫做referer的字段
随便在百度中所搜一个东西,然后点开抓包,

这里写图片描述

1.追溯上一个入站地址是什么
2.对于资源文件,可以跟踪到包含显示他的网页地址是什么

因此基于所有的防盗链都是基于referer字段来设置的

那么如何才能绕过防盗链对所需资源进行抓取???

在通常的处理过程中,如果在自己的站点直接引入百度的图片
这里写图片描述

(⊙o⊙)哦,引入链接失败咯啊!!!那么怎么用curl处理
毕竟要爬取必要的信息

    $url="http://c.hiphotos.baidu.com/image/w%3D210/sign=ed30880babec8a13141a50e1c7029157/d52a2834349b033be1a9503e17ce36d3d539bd35.jpg";
    //$url = str_replace("http:/","http://",$url); 
    $dir = pathinfo($url);
    $host = $dir['dirname'];
    $refer = $host.'/';
    $ch = curl_init($url);
    curl_setopt ($ch, CURLOPT_REFERER, $refer);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
    $data = curl_exec($ch);
    curl_close($ch);
    header("Content-type: image/jpeg");
    print( $data );

然后么,因为直接print了,所以结果是这样的
这里写图片描述

最后怎么在浏览器里边正常显示,明天写吧!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值