jsoup(来自开源中国:http://www.oschina.net/p/jsoup/) 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。
jsoup的主要功能如下:
从一个URL,文件或字符串中解析HTML;
使用DOM或CSS选择器来查找、取出数据;
可操作HTML元素、属性、文本;
jsoup是基于MIT协议发布的,可放心使用于商业项目。
一下代码是一个简单的应用,改变main方法中的调用,显示不同的操作结果:
package com.jason.jsoup.test;
import java.io.File;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class HelloWorld {
public static void main(String[] args) {
HelloWorld t = new HelloWorld();
//此处可不同调用,显示不同的结果;
t.parseUrl();
}
//解析String;
public void parseString() {
String html = "<html><head><title>blog</title></head><body onload='test()'><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);
System.out.println(doc);
Elements es = doc.body().getAllElements();
System.out.println(es.attr("onload"));
System.out.println(es.select("p"));
}
//解析网络链接;
public void parseUrl() {
try {
Document doc = Jsoup.connect("http://www.sina.com/").get();
Elements hrefs = doc.select("a[href]");
System.out.println(hrefs);
System.out.println("------------------");
System.out.println(hrefs.select("[href^=http]"));
} catch (IOException e) {
e.printStackTrace();
}
}
//解析本地文件;
public void parseFile() {
try {
File input = new File("index.html");
Document doc = Jsoup.parse(input, "UTF-8");
// 提取出所有的编号
Elements codes = doc.body().select("td[title^=IA] > a[href^=javascript:view]");
System.out.println(codes);
System.out.println("------------------");
System.out.println(codes.html());
} catch (IOException e) {
e.printStackTrace();
}
}
}
参考文章: http://blog.csdn.net/a9529lty/article/details/7008537
在线Javadoc: http://www.ostools.net/apidocs/apidoc?api=jsoup-1.6.3