学习地址:http://www.jb51.net/article/43485.htmhtml
1、引入Jsoup jar包node
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.8.1</version> </dependency>
2、经过Jsoup获取Document学习
一、爬取的page对象获取url
//import org.jsoup.nodes.Document; Document doc = Jsoup.parse(page.getHtml().toString());
二、从一个URL加载一个Documentspa
Document doc = Jsoup.connect("http://www.jb51.net/").get();
String title = doc.title();
三、从一个文件加载一个文档.net
Jsoup.parse(File in, String charsetName, String baseUri) 方法code
baseUri 参数用于解决文件中URLs是相对路径的问题。若是不须要能够传入一个空的字符串。
File input = new File("/tmp/input.html"); Document doc = Jsoup.parse(input, "UTF-8", "http://www.jb51.net/");
3、使用DOM操做Documenthtm
查找能够叠加,即doc.getElementById(String id).getElementsByTag(String tag);对象
Element ele = doc.getElementById(String id);//经过节点id获取节点 Element ele = getElementsByTag(String tag);//经过节点名获取节点 Element ele = getElementsByClass(String className);//经过class获取节点 Elements ele = getElementsByTag(String tag);//经过节点名获取节点列表
4、使用选择器select操做Documentblog
Element ele = doc.select("div#keywordList");//经过id获取,id惟一 Elements eles = doc.select("dic.ps-content");//经过class属性获取,存在多个用Elements接收 Element ele = doc.select("div.main-content").select("ul").select("li");//逐级获取 Elements links = doc.select("a[href]"); //带有href属性的a元素 Elements pngs = doc.select("img[src$=.png]");//扩展名为.png的图片 //完整例子--获取值 String url =ele.select("div.published").select("span.content-title").select("a").attr("href"); String publishDate =ele.select("div.published").select("span.time").text(); String browseCount = ele.select("td").get(2).text();
5、获取元素数据
element.attr(String key);//获取属性attr(String key, String value)设置属性 element.attributes();//获取全部属性 element.id();//获取节点id element.className();//获取class属性名 element.classNames();//获取节点全部class属性 element.text();//获取文本内容 element.text(String value);// 设置文本内容 element.html();//获取元素内HTML element.html(String value);//设置元素内的HTML内容 element.outerHtml();//获取元素外HTML内容 element.data();//获取数据内容(例如:script和style标签) element.tag();//获取标签对象 element.tagName();//获取标签名