1、jsoup简介
  jsoup 是一款 Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。jsoup 的主要功能如下:
  (1)从一个 URL,文件或字符串中解析HTML;
  (2)使用DOM或CSS选择器来查找、取出数据;
  (3)可操作HTML元素、属性、文本;
  2、maven配置
  <!-- jsoup -->
  <dependency>
  <groupId>org.jsoup</groupId>
  <artifactId>jsoup</artifactId>
  <version>1.7.3</version>
  </dependency>
  3、解析一个HTML文档
  3.1 从字符串解析
  String html = "<html><head><title>First parse</title></head>" + "<body><p>Parsed HTML into a doc.</p></body></html>";
  <!-- 解析之后可以用Document的方法,拿出html中需要的数据 -->
  Document doc = Jsoup.parse(html); 
  3.2 从URL获取解析
  Document doc = Jsoup.connect("http://example.com/").get();
  String title = doc.title();
  (1)说明
  connect(String url)方法创建一个新的 Connection, 和get()取得和解析一个HTML文件。如果从该URL获取HTML时发生错误,便会抛出 IOException,应适当处理。Connection 接口还提供一个方法链来解决特殊请求,具体如下:
  Document doc = Jsoup.connect("http://www.oschina.net/")
  .data("query", "Java")   // 请求参数
  .userAgent("I ’ m jsoup") // 设置 User-Agent
  .cookie("auth", "token") // 设置 cookie
  .timeout(3000)           // 设置连接超时时间
  .post();                 // 使用 POST 方法访问 URL
  这个方法只支持Web URLs (http和https 协议); 假如你需要从一个文件加载,可以使用parse(File in, String charsetName) 代替。
  3.3 从文件解析
  File input = new File("/tmp/input.html");
  Document doc = Jsoup.parse(input, "UTF-8", "http://www.oschina.net/");
  (1)说明
  parse的第三个参数,需要在这里指定一个网址(虽然可以不指定),因为HTML文档中会有很多例如链接、图片以及所引用的外部脚本、css 文件等,而第三个名为 baseURL 的参数的意思是当 HTML 文档使用相对路径方式引用外部文件时,jsoup 会自动为这些 URL 加上一个前缀,也是这个 baseURL。
  例如 :<a href=/project> 开源软件 </a> 会被转换成 <a href=http://www.oschina.net/project> 开源软件 </a>。
  4、遍历一个HTML文档
  4.1 Document方式遍历元素
  4.1.1 搜索元素方法
  getElementById(String id)
  getElementByTag(String tag)
  getElementByClass(String className)
  getElementByAttribute(String key)
  siblingElements(), firstElementSibling(), lastElementSibling(), nextElementSibling(), previousElementSibling()
  parent(), children(), child(int index)
  4.1.2 获取元素数据
  attr(String key) – 获取key属性
  attributes() – 获取属性
  id(), className(), classNames()
  text() – 获取文本内容
  html() – 获取元素内部HTML内容
  outerHtml() – 获取包括此元素的HTML内容
  data() – 获取<srcipt>或<style>标签中的内容
  tag(), tagName()
  4.2 选择器语法遍历元素(jsoup与其他解析器的区别是可以使用类似jquery的选择器语法来搜索及过滤出所需的元素)