代码改变世界

从网页抓取图片

2011-12-01 13:45  javaspring  阅读(618)  评论(0编辑  收藏  举报

从服务器获取数据步骤:根据http协议

package com.smu;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;


public class Main {

     /**
     *
     * 抓取的图片,保存在c:\image_name.jpg
     */
     public static void main(String[] args) {
          byte date[] = new byte[1024];
          //图片的路径
          String url_path = "http://avatar.csdn.net/1/D/9/1_sm_xjz.jpg";
          try {
               //获取图片的数据
               date = getImage(url_path);
               //定义一个图片文件,并命名要保存的文件名
               File image_file = new File("c:\\image_name.jpg");
               FileOutputStream fileOutputStream = new FileOutputStream(image_file);
               //将获取图片的数据写入到image_name.jpg
               fileOutputStream.write(date);
               fileOutputStream.close();
          } catch (Exception e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
          }
         
     }
     /**
     * 从网页获取图片的数据
     * @param path
     * @return
     * @throws Exception
     */
     public static  byte[]  getImage(String path) throws Exception{
          ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
          URL url = new URL(path);
          HttpURLConnection conn = (HttpURLConnection)url.openConnection();
          conn.setRequestMethod("GET");
          conn.setConnectTimeout(5 * 1000);
          InputStream inputStream = conn.getInputStream();
          byte data[] = new byte[1024];
          int len = 0;
          while((len = inputStream.read(data)) != -1){
               outputStream.write(data, 0, len);
          }
          return outputStream.toByteArray();
     }
}