使用Java解析HTML很简单,使用jsoup.jar来解析,使用起来和jquery差不多
下面是两个例子
1.解析web页面

1 import org.jsoup.Connection; 2 import org.jsoup.Jsoup; 3 import org.jsoup.nodes.Document; 4 import org.jsoup.nodes.Element; 5 import org.jsoup.select.Elements; 6 7 8 public class ParseWebPage { 9 10 11 12 public static void main(String[] args) throws Exception { 13 14 Connection conn = Jsoup.connect("http://www.hao123.com"); 15 Document document = conn.get(); 16 17 //解析出 class为feedback的li标签 的后代a标签元素 18 Elements elements = document.select("li.feedback a"); 19 20 for (Element element : elements) { 21 System.out.println(element.html()); 22 System.out.println(element.attr("href")); 23 } 24 25 } 26 27 28 }
2.解析本地页面

1 import java.io.File; 2 3 import org.jsoup.Jsoup; 4 import org.jsoup.nodes.Document; 5 import org.jsoup.nodes.Element; 6 import org.jsoup.select.Elements; 7 8 public class ParseLocalPage { 9 10 public static void main(String[] args) throws Exception { 11 File file =new File("E:/JavaScriptDojo/jqueryui/测试Button.html"); 12 Document document = Jsoup.parse(file, "utf-8"); 13 14 Elements es = document.select("#getDPvalues"); 15 16 for (Element element : es) { 17 System.out.printf("%s\t%s\n" ,element.html() ,element.val()); 18 } 19 } 20 }
很简单吧
使用jsoup解析HTML之获取html源码
上一讲我们简要的介绍了jsoup和HTML DOM结构。在准备解析html之前,首先要做的当然是获取需要解析的html源码。jsoup提供了多种获取和解析html的方式。
新建一个Java工程,命名为JsoupDemo。然后导入jsoup的jar包。
下面分别来演示几种获取Document对象的方法。
使用Jsoup的parse(String html)类方法,可以从字符串中获取Document对象,然后再进行详细的解析。
connect(String url)方法将会得到一个Connection类的实例,Connection类是HttpConnection的子类,然后调用get()方法,将会发送get请求,返回一个Document对象。类似的,我们也可以通过post()获取,主要是看我们的请求类型是get还是post。如果请求需要参数,我们可以使用Map<String,String>构造参数,然后通过data(Map<String,String> params)方法设置。得到Document对象后,我们就可以对其进行解析。
当我们本地有一个html文件时,我们可以使用parse(File in, String charsetName)方法从本地文件中获取Document对象。
最后我们在main方法中测试三种获取Document对象的方法,发现都能正常获取到Document对象。
1
2
3
4
5
6
7
8
9
|
public
static
void
main
(
String
[
]
args
)
throws
IOException
{
parseDocFromString
(
)
;
loadDocByUrl
(
)
;
loadDocFromFile
(
)
;
}
|