博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jsoup爬取网站图片
阅读量:6761 次
发布时间:2019-06-26

本文共 2650 字,大约阅读时间需要 8 分钟。

package com.ij34.JsoupTest;import java.io.File;  import java.io.FileOutputStream;  import java.io.InputStream;  import java.net.HttpURLConnection;import java.net.URL;  import java.net.URLEncoder;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Random;import org.jsoup.Jsoup;  import org.jsoup.nodes.Document;  import org.jsoup.nodes.Element;  import org.jsoup.select.Elements;   public class JsoupTest {          public static void downImages(String filePath,String imgUrl) throws Exception {                    //获取网址        String beforeUrl = imgUrl.substring(0,imgUrl.lastIndexOf("/")+1);          //图片url后面的图片名字        String fileName = imgUrl.substring(imgUrl.lastIndexOf("/")+1);          String newFileName = URLEncoder.encode(fileName, "UTF-8");          //"+"替换为UTF-8中的空格          newFileName = newFileName.replaceAll("\\+", "\\%20");          //编码之后的url          imgUrl = beforeUrl + newFileName;           //创建文件目录              File files = new File(filePath);              if (!files.exists()) {                  files.mkdirs();              }              URL url = new URL(imgUrl);              HttpURLConnection connection = (HttpURLConnection)url.openConnection();              InputStream is = connection.getInputStream();              Date day=new Date();                SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");             Random ra=new Random();            int Num=ra.nextInt(11)+100;            String fn=df.format(day)+Num;             //去图片的格式例如.jpg .jpeg            int lastIndex=fileName.lastIndexOf(".");            String result=fileName.substring(lastIndex);            File file = new File(filePath +fn+ result);              FileOutputStream out = new FileOutputStream(file);              int i = 0;              while((i = is.read()) != -1){                  out.write(i);              }                   }            public static void main(String[] args) throws Exception {          //int[] a=new int[]{};          //for(int i=a.length-1;i>=0;i--){          //爬取的网址              String url = "http://www.ivsky.com/tupian/laohu_v45527";//+a[i];            String savePath = "D://webmagic//";              Document document = Jsoup.connect(url).get();              Elements elements = document.getElementsByTag("img");              for(Element element : elements){                  //图片的绝对路径                  String imgSrc = element.attr("abs:src");                  //取jpg格式                if(imgSrc.contains(".jpg")){                downImages(savePath, imgSrc);                  System.out.println(url+":"+imgSrc);                  }             }        //    }    }  }

 

 

 

转载地址:http://jvbeo.baihongyu.com/

你可能感兴趣的文章
3D打印机切片与控制软件
查看>>
PHP empty、isset、isnull的区别
查看>>
数字按照不同格式转换成字符串
查看>>
__weak如何实现目标值自己主动设置nil的
查看>>
thttpd增加gzip压缩响应报文体功能,以减少传输数据量
查看>>
Windows下搭建IOS开发环境(一)
查看>>
linux 网络协议分析---3
查看>>
如何将SVN patch的修改做成old&new文件
查看>>
script加载文件
查看>>
统计学常见分布、概念
查看>>
java的PrintStream(打印输出流)详解(java_io)
查看>>
Redis Keys 命令 - 查找所有符合给定模式( pattern)的 key
查看>>
python基础-PyYaml操作yaml文件
查看>>
C# WPF 实现鼠标固定在指定范围内运动
查看>>
canvas绘图,html5 k线图,股票行情图
查看>>
Web前端设计模式——制作漂亮的弹出层
查看>>
Mozilla正计划修复Firefox遗留8年的漏洞
查看>>
Google C++单元测试框架(Gtest)系列教程之二——断言、函数测试
查看>>
Apex Design Patterns
查看>>
windows、linux创建子进程
查看>>