java抓取网页图片并下载_Java 抓取指定网页的图片地址并下载到指定文件夹下

importjava.io.BufferedInputStream;importjava.io.InputStream;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.HttpURLConnection;importjava.net.MalformedURLException;importjava.net.URLConnection;importjava.net.URL;importjava.util.regex.Matcher;importjava.util.regex.Pattern;public classgetHtml2 {public voidgetHtmlPicture(String httpUrl) {

URL url;

BufferedInputStream in;

FileOutputStream file;try{

System.out.println("取网络图片");

String fileName= httpUrl.substring(httpUrl.lastIndexOf("/"));

String filePath= "E:\\pic\\";

url= newURL(httpUrl);//URLConnection connection = url.openConnection();

HttpURLConnection con =(HttpURLConnection) url.openConnection();if(con.getResponseCode()==200)

{

in= newBufferedInputStream( con.getInputStream());

file= new FileOutputStream(new File(filePath +fileName));intt;while ((t = in.read()) != -1) {

file.write(t);

}

file.close();

in.close();

System.out.println("图片获取成功");

}

}catch(MalformedURLException e) {

e.printStackTrace();

}catch(FileNotFoundException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}

}public String getHtmlCode(String httpUrl) throwsIOException {

String content= "";

URL uu= new URL(httpUrl); //创建URL类对象

BufferedReader ii= new BufferedReader(newInputStreamReader(uu

.openStream()));// //使用openStream得到一输入流并由此构造一个BufferedReader对象

String input;while ((input = ii.readLine()) != null) { //建立读取循环,并判断是否有读取值

content+=input;

}

ii.close();returncontent;

}public void get(String url) throwsIOException {

String searchImgReg= "(?x)(src|SRC|background|BACKGROUND)=('|\")/?(([\\w-]+/)*([\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")";

String searchImgReg2= "(?x)(src|SRC|background|BACKGROUND)=('|\")(http://([\\w-]+\\.)+[\\w-]+(:[0-9]+)*(/[\\w-]+)*(/[\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")";

String content= this.getHtmlCode(url);

System.out.println(content);

Pattern pattern=Pattern.compile(searchImgReg);

Matcher matcher=pattern.matcher(content);while(matcher.find()) {

System.out.println(matcher.group(3));this.getHtmlPicture(url + matcher.group(3));

}

pattern=Pattern.compile(searchImgReg2);

matcher=pattern.matcher(content);while(matcher.find()) {

System.out.println(matcher.group(3));this.getHtmlPicture(matcher.group(3));

}//searchImgReg =//"(?x)(src|SRC|background|BACKGROUND)=('|\")/?(([\\w-]+/)*([\\w-]+\\.(jpg|JPG|png|PNG|gif|GIF)))('|\")";

}public static void main(String[] args) throwsIOException {

String url= "http://blog.chinaunix.net/uid-26284395-id-3135495.html";

getHtml2 gcp= newgetHtml2();

gcp.get(url);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值