Jsoup入门教程

来源:互联网 发布:js简易计算器 代码 编辑:程序博客网 时间:2024/05/18 02:48

jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

jsoup的主要功能如下:

1. 从一个URL,文件或字符串中解析HTML;

2. 使用DOM或CSS选择器来查找、取出数据;

3. 可操作HTML元素、属性、文本;

注:jsoup是基于MIT协议发布的,可放心使用于商业项目。

以下我们用代码演示常用方法:

package com.open111.demo;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.select.Elements;public class JsoupTest {public static void main(String[] args) throws Exception{//HttpClient请求获取网页htmlCloseableHttpClient client=HttpClients.createDefault();HttpGet get=new HttpGet("http://www.baidu.com");CloseableHttpResponse response=client.execute(get);String content="";if(response.getStatusLine().getStatusCode()==200){content=EntityUtils.toString(response.getEntity(), "UTF-8");System.out.println(content);}//将前面获取到的html文本转换为Document对象Document doc=Jsoup.parse(content);//获取标签名为title的dom节点Elements elements=doc.getElementsByTag("title");//获取标签名为a的dom节点Elements elements2=doc.getElementsByTag("a");String titleText=elements.get(0).text();System.out.println(titleText);//循环打印element2中的节点信息for(int i=0;i<elements2.size();i++){System.out.println(elements2.get(i));System.out.println(elements2.get(i).attr("name"));System.out.println(elements2.get(i).text());}//Jsoup选择器//查询doc中a标签Elements resultLinks1 = doc.select("a");//查询doc中的input标签,条件为name=tnElements resultLinks2 = doc.select("input[name=tn]");//查询doc中的img标签,条件为图片路径以.png结尾Elements resultLinks3 = doc.select("img[src$=.png]");System.out.println(resultLinks1);System.out.println(resultLinks2);System.out.println(resultLinks3);//关闭HttpClient连接client.close();}}



原创粉丝点击