zoukankan      html  css  js  c++  java
  • java读取网页图片路径并下载到本地

    java读取网页图片路径并下载到本地

    最近公司需要爬取一些网页上的数据,自己就简单的写了一个demo,其中有一些数据是图片,需要下载下来到本地并且

    将图片的路径保存到数据库,示例代码如下:

    package com.cellstrain.icell.util;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.Date;


    public class DownloadImage {

    /**
    * @param args
    * @throws Exception
    */
    public static void main(String[] args) throws Exception {
    download("https://www.mybiosource.com/images/tds/protocol_images/1000000-6999999/MBS2031060_SDS.jpg","E:\upload\SDSPage");
    }

    public static String download(String urlPath,String savePath) throws Exception {
    // 构造URL
    URL url = new URL(urlPath);
    // 打开连接
    URLConnection con = url.openConnection();
    //设置请求超时为5s
    con.setConnectTimeout(5*1000);
    // 输入流
    InputStream is = con.getInputStream();
    // 1K的数据缓冲
    byte[] bs = new byte[1024];
    // 读取到的数据长度
    int len;
    // 输出的文件流
    File sf=new File(savePath);
    if(!sf.exists()){
    sf.mkdirs();
    }
    int randomNo=(int)(Math.random()*1000000);
    String filename=urlPath.substring(urlPath.lastIndexOf("/")+1,urlPath.length());//获取服务器上图片的名称
    filename=new java.text.SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date())+randomNo+filename;//时间+随机数防止重复
    OutputStream os = new FileOutputStream(sf.getPath()+"\"+filename);
    String virtualPath="/upload/SDSPage/"+filename;//存入数据库的虚拟路径
    // 开始读取
    while ((len = is.read(bs)) != -1) {
    os.write(bs, 0, len);
    }
    // 完毕,关闭所有链接
    os.close();
    is.close();
    return virtualPath;
    }

    }
    在E盘的upload文件下的SDSPage文件夹下就可以看到下载好的图片,将路径存到数据库后直接用el表达式就可以显示图片了,前提
    是tomcat得配置好虚拟路径哦,如果不清楚怎么配置虚拟路径的可以查看http://www.cnblogs.com/qianzf/p/6781143.html

    原文博客的链接地址:https://cnblogs.com/qzf/
  • 相关阅读:
    基于MPI计算π值
    依赖倒转原则
    里氏代换原则
    开闭原则
    以太坊入门-solidity环境搭建
    【owner】today,last second day
    105-算法应用【N皇后问题】代码实现
    【Java小工具】节点选举Demo
    【加密算法】MD5、SHA算法加密工具类
    50-数据结构【原码、反码和补码】计算机数表示方法
  • 原文地址:https://www.cnblogs.com/qianzf/p/6821049.html
Copyright © 2011-2022 走看看