jsoup
Jsoup是一个非常好的解析网页的包,用java开发的,提供了类似DOM,CSS选择器的方式来查找和提取文档中的内容。
1.下载地址
中文文档资料:http://www.open-open.com/jsoup/
比较好的文档:http://www.ostools.net/apidocs/apidoc?api=jsoup-1.6.3
2.maven配置实例
<dependency> <!-- jsoup HTML parser library @ http://jsoup.org/ --> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.8.3</version> </dependency>
简单测试
package com.javen.Jsoup; import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class JsoupTest { static String url="http://www.cnblogs.com/zyw-205520/archive/2012/12/20/2826402.html"; /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub BolgBody(); //test(); //Blog(); /* * 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 /* * // 从文件中加载 HTML 文档 File input = new File("D:/test.html"); Document doc * = Jsoup.parse(input,"UTF-8","http://www.oschina.net/"); */ } /** * 获取指定HTML 文档指定的body * @throws IOException */ private static void BolgBody() throws IOException { // 直接从字符串中输入 HTML 文档 String html = "<html><head><title> 开源中国社区 </title></head>" + "<body><p> 这里是 jsoup 项目的相关文章 </p></body></html>"; Document doc = Jsoup.parse(html); System.out.println(doc.body()); // 从 URL 直接加载 HTML 文档 Document doc2 = Jsoup.connect(url).get(); String title = doc2.body().toString(); System.out.println(title); } /** * 获取博客上的文章标题和链接 */ public static void article() { Document doc; try { doc = Jsoup.connect("http://www.cnblogs.com/zyw-205520/").get(); Elements ListDiv = doc.getElementsByAttributeValue("class","postTitle"); for (Element element :ListDiv) { Elements links = element.getElementsByTag("a"); for (Element link : links) { String linkHref = link.attr("href"); String linkText = link.text().trim(); System.out.println(linkHref); System.out.println(linkText); } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 获取指定博客文章的内容 */ public static void Blog() { Document doc; try { doc = Jsoup.connect("http://www.cnblogs.com/zyw-205520/archive/2012/12/20/2826402.html").get(); Elements ListDiv = doc.getElementsByAttributeValue("class","postBody"); for (Element element :ListDiv) { System.out.println(element.html()); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
知识只有共享才能传播,才能推崇出新的知识,才能学到更多,这里写的每一篇文字/博客,基本都是从网上查询了一下资料然后记录下来,也有些是原滋原味搬了过来,也有时加了一些自己的想法