jsoup是一款Java的HTML解析器、可以通过URL获取DOM元素并解析,也可对HTML文本内容进行解析,jsoup提供了一套非常简单的方法,类似于CSS、JQuery的操作方法对元素或者是数据进行操作。
1、解析资源的方式
(1) Jsoup.connect(urlPath).get(); //加载URL (2) Jsoup.parse(""); //从字符串中解析 (3) Jsoup.parse(File in,String charsetName,String baseUri); //从本地文件进行解析该示例使用第一种方式,加载URL
2、添加相关依赖 2.1 pom.xml中添加依赖
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.13.1</version> </dependency>2.2 或者下载Jar包: jsoup-1.13.1.jar
3、示例代码 红色框中是我们想要的部分,每一个DIV对应一张图片
public class Test { /** * Jsoup常用对象: * 1、Document:文档对象 * 2、Element:元素对象 * 3、Elements:Element元素对象的集合 * @param args */ public static void main(String[] args) { //设置请求的地址 String urlPath = "http://sc.chinaz.com/tupian/fengjingtupian.html"; //调用方法 test(urlPath); } public static void test(String urlPath){ try { //加载URL中的元素 Document document = Jsoup.connect(urlPath).get(); //获取我们需要的内容(大概的节点) Elements elements = document.select(".all_wrap #container"); //定位到我们想要的标签(详细节点) Elements elements2 = elements.select("img"); //使用循环获取当个的元素 for(Element node:elements2){ //获取img标签中src属性值 String href = node.attr("src"); //从图像地址中截取一段文件名出来 String fileName = href.substring(href.lastIndexOf("/")+1); //使用URL单个访问 URL url = new URL(href); //打开连接 URLConnection conn = url.openConnection(); //使用文件流读取网页上的内容 InputStream is = conn.getInputStream(); //把获取到的内容,保存在本地中 OutputStream os = new FileOutputStream(new File("d:\\images",fileName)); //设置临时存储变量 int i = 0 ; while((i = is.read())!=-1){ os.write(i); } System.out.println(fileName+" ----------->下载成功!"); } } catch (Exception e) { e.printStackTrace(); } } }