• 前言
    今天想下载几张好看的壁纸,然后发现了一张是自己比较喜欢的额。然后点进去看看,WOW!好多好看的壁纸呀,于是我就起了贪念。哈哈!想把他们这一组图片打包下载,小白的方法就是一张一张下载,那样对于我们程序员来说是很low的办法。于是我考虑使用万能的java来下载他们的组图,花2小时鼓捣一下,但是觉得网上的文章大多是于抄袭,有些又不是很全。于是就了这篇文章,希望对各位有帮助。但不建议将此方法用作商业,因为盗用别人的图片属于违法行为!!!
  • 图片防盗链
    很多网站为了防止别的网站盗用自己网站的图片,就是用了图片防盗链技术。也就是说,当我获取图片的url之后,直接在浏览器或者代码里访问。举个栗子:比如我想使用url要直接在浏览器中打开一张图片,但是出现的却是另外一张警告图片,里面写着:想查看图片请访问XXX网站。这就是一个典型的图片防盗链,其原理就是会在request的请求头里携带一个“referer”的变量,以此来判断该请求是从哪个链接跳转过来的。如果没有携带“referer”或者不是从本网站跳转一律返回警告或提示图片。
  • 破解防盗链
    知其原理,破其规律。既然咱们知道防盗链的原理,那我们可以很简单的伪装一个“referer”就可以了,也就是在请求之前先在request的header里添加一个变量为referer:http.xxx.xxxcom 也就是该网站的随意的一个url。

    package com.cmc.test;import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;/*** 使用多线程下载防盗链图片* * @author chenmc* @date 2017年8月30日 下午2:39:23*/
    public class DownloadPicture {public static void main(String[] args) throws InterruptedException {for (int i = 1; i <= 10; i++) {int n = i;Thread t = new Thread(){@Overridepublic synchronized void run() {try {httpRequest(n);} catch (Exception e) {e.printStackTrace();}super.run();}};t.start();}}/*** 发起http请求* * @author chenmc* @date 2017年8月30日 下午2:36:09* @param n* @throws Exception*/public static void httpRequest(int n) throws Exception {for (int i = (n-1)*5 > 1 ? (n-1)*5 : 1; i < n*5; i++) { long startTime = System.currentTimeMillis();String path = "C:/Users/admin/Pictures/壁纸/" + String.format("%03d", i) + ".jpg";//这里url写你想要下载图片的urlString uri = String.format("http://bizhi.xxx.com/rluo/%s.jpg", String.format("%03d", i));System.out.println(uri);URL url = new URL(uri);  HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestProperty("referer", "http://bizhi.xxx.com"); //这是破解防盗链添加的参数conn.setRequestMethod("GET");  conn.setConnectTimeout(5 * 1000);  InputStream inStream = conn.getInputStream();//通过输入流获取图片数据readInputStream(inStream, path);//得到图片的二进制数据,并保存long endTime = System.currentTimeMillis();System.out.println(path + "--耗时:" + (endTime-startTime)/1000 + "s");}}/*** 保存图片* * @author chenmc* @date 2017年8月30日 下午2:35:54* @param inStream* @param path* @throws Exception*/public static void readInputStream(InputStream inStream, String path) throws Exception{  FileOutputStream fos = new FileOutputStream(new File(path));byte[] buffer = new byte[102400];  int len = 0;  while( (len=inStream.read(buffer)) != -1 ){  fos.write(buffer, 0, len);  }  inStream.close();  fos.flush();fos.close();}
    }

    上述例子我使用了多线程技术,因为我想下载的壁纸有247张之多,所以我使用了50个线程,每个线程下载5张。因为是自己下载壁纸用的,所以没有考虑效率之类的,这里也希望大家可以自己去改进它。
    最后给大家一波福利~~~好看的夕阳壁纸1 夕阳壁纸2 因为我上传的资源限制大小为80M,所以分开上传了~因为这是图片资源,所以csdn可能会删除哦,想要的同学们尽快下载吧!

  • 给大家养养眼~~~

Java破解图片防盗链相关推荐

  1. 相册图片防盗链破解(如:在外部也能显示qq、163或百度空间图片)

    相册图片防盗链破解(如:在外部也能显示qq.163或百度空间图片) 比如: http://item.taobao.com/auction/item_detail-0db1-203ddc6b8b499a ...

  2. php破解referer防盗链解析,Referer原理与图片防盗链实现方法详解

    本文实例讲述了Referer原理与图片防盗链实现方法.分享给大家供大家参考,具体如下: 1.图片防盗链 在一些大型网站中,比如百度贴吧,该站点的图片采用了防盗链的规则,以至于使用下面代码会发生错误. ...

  3. 前端解决第三方图片防盗链的办法 - html referrer 访问图片资源 403 问题

    问题 笔者网站的图片都是上传到第三方网站上的,比如 简书.掘金.七牛云上的,但是最近简书和掘金都开启了 防盗链,防止其他网站访问他们网站上的图片了,导致笔者的网站存在他们网站上的图片全挂了. 具体问题 ...

  4. php substr 去掉前n位_用PHP是如何做图片防盗链的

    1.图片防盗链 在一些大型网站中,比如百度贴吧,该站点的图片采用了防盗链的规则,以至于使用下面代码会发生错误. 简单代码: <!DOCTYPE html> <html> < ...

  5. lnmp/nginx系统真正有效的图片防盗链完整设置详解

    http://www.it300.com/article-15345.html 关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底的防盗链! ...

  6. Global.asax或IHttpModule实现屏蔽ip和图片防盗链

    Global.asax实现屏蔽ip和图片防盗链 protected void Application_BeginRequest(object sender, EventArgs e) { //屏蔽ip ...

  7. 网络安全:图片防盗链的实现原理

    来自:掘金,作者:chenhongdong 链接:https://juejin.im/post/5adc0d03518825673a2022b7 前言 防盗链,就是防有人盗用你的链接.别人在他的网站上 ...

  8. django21:admin后台管理\media配置\图片防盗链\暴露后端资源\路由分发\时间分类

    admin后台管理 创建超级用户 createsuperuser 1.到应用下的admin.py注册模型表 from django.contrib import admin from blog imp ...

  9. ASP.NET中利用ashx实现图片防盗链

    盗链的危害我就不说了,网上有很多. 直接分析盗链原理:看下面用httpwatch截获的http发送的数据 GET /Img.ashx?img=svn_work.gif HTTP/1.1 Accept: ...

最新文章

  1. mysql --initalize_MySQL初始化设置
  2. Oracle归档日志删除
  3. 解决AJAX CalendarExtender控件不显示中文的情况(转帖博客园某人(不好意思,实在是没有找到您的尊姓大名,感谢一下!))...
  4. 深度剖析Apache Shardingsphere对分布式事务的支持
  5. Spring综合课程总结
  6. 红橙Darren视频笔记 自定义RatingBar touch事件学习 dp转px listener监听
  7. 14 exec/fork/wait cycles for Process Management
  8. Android五天乐(第三天)ListFragment与ViewPager
  9. javascript设计模式-抽象工厂模式
  10. 【图像处理】MATLAB:直方图
  11. 为 WE 打 Call!
  12. Linux chapter test 10
  13. GD32芯片包下载和安装教程
  14. 实现音视频编解码工具 MediaCodec 创建解码器
  15. 【LRC动态歌词制作—B站音频】“清新的小女孩-July Tun”为例
  16. python单位根检验平稳性怎么看是否平稳_PYthon ADF 单位根检验 如何查看结果
  17. Identifying Encrypted Malware Traffic with Contextual Flow Data
  18. 神舟笔记本键盘灯不亮驱动
  19. Paper | Detail-revealing Deep Video Super-resolution
  20. 实时语音变声技术原理解析:“大叔变小萝莉”

热门文章

  1. 相机删除自动闪光灯。桌面删除搜索框(google)等。预置应用可卸载。
  2. scip指令集_明年1月实施!ECHA对输欧物品提出SCIP通报要求
  3. 通过vi服务器运行vi,动态改变界面改变VI的属性KCC.ppt
  4. Java语言编码规范(Java Code Conventions)
  5. 速卖通、Lazada、Shopee需要补单吗?怎么补才安全
  6. 苹果Mac系统无法输入密码怎样解决
  7. decode解码 geohash_Geohash算法原理及实现
  8. 计算机基础课目录,计算机基础课程Word目录自动生成机制
  9. JDO 与 Hibernate
  10. 联想凌拓:谁更如愿以偿呢?