jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套很是省力的API,可经过DOM,CSS以及相似于jQuery的操做方法来取出和操做数据。官网 中文文档css
在爬虫的时候,当咱们用HttpClient之类的框架,获取到网页源码以后,须要从网页源码中取出咱们想要的内容,就能够使用jsoup这类HTML解析器了。能够很是轻松的实现。html
jsoup也支持从某个地址直接去爬取网页源码,目前支持HTTP,HTTPS协议。java
1)从一个URL,文件或字符串中解析HTMLnode
2)使用DOM或CSS选择器来查找、取出数据jquery
3)可操做HTML元素、属性、文本cookie
注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。框架
被解析的HTML能够是一个HTML的字符串,能够是一个URL,能够是一个文件。dom
org.jsoup.Jsoup把输入的HTML转换成一个org.jsoup.nodes.Document对象,而后从Document对象中取出想要的元素。工具
org.jsoup.nodes.Document继承了org.jsoup.nodes.Element,Element又继承了org.jsoup.nodes.Node类。里面提供了丰富的方法来获取HTML的元素。post
从url获取HTML解析
Document getDocument = Jsoup.connect("http://www.baidu.com").get();
Document postDocument = Jsoup.connect("http://exmple.com") .data("query", "java") .userAgent("Mozilla") .cookie("auth", "token") .timeout(3000) .post();
//经过id来获取 getElementById(String id) //经过标签名字来获取 getElementsByTag(String tagName) //经过类名来获取 getElementsByClass(String className) //经过属性名字来获取 getElementsByAttribute(String key) //经过指定的属性名字,属性值来获取 getElementsByAttributeValue(String key, String value) //获取全部元素 getAllElements()
Element类的方法:
public Elements select(String cssQuery)
获取百度搜索按钮value内容
String val = getDocument.select("#su").val();
或者
String su = getDocument.body().getElementById("su").val();
还有更多获取元素的方法,建议仍是直接看官方文档,毕竟那才是最干活的,我这里只是简单入门。