jsoup对Html的解析

在遇到需要对Html的URL 地址、HTML 文本内容解析时可以用到jsoup

它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据


jsoup 可以从包括字符串、URL 地址以及本地文件来加载 HTML 文档,并生成 Document 对象实例

下面是相关代码

 // 直接从字符串中输入 HTML 文档
 String html = "<html><head><title> 开源中国社区 </title></head>"
  + "<body><p> 这里是 jsoup 项目的相关文章 </p></body><html>"; 
 Document doc = Jsoup.parse(html); 

 // 从 URL 直接加载 HTML 文档
 Document doc = Jsoup.connect("http://www.oschina.net/").get(); 
 String title = doc.title(); 

 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/");
我们可能会需要对文档中的某些元素进行修改jsoup 也提供了传统的 DOM 方式的元素解析
File input = new File("D:/test.html");
 Document doc = Jsoup.parse(input, "UTF-8", "http://www.oschina.net/");

 Element content = doc.getElementById("content");
 Elements links = content.getElementsByTag("a");
 for (Element link : links) {
  String linkHref = link.attr("href");
  String linkText = link.text();
 }
我们可能会需要对文档中的某些元素进行修改
 doc.select("div.comments a").attr("rel", "nofollow");
 // 为所有链接增加 rel=nofollow 属性
 doc.select("div.comments a").addClass("mylinkclass");
 // 为所有链接增加 class=mylinkclass 属性
 doc.select("img").removeAttr("onclick"); // 删除所有图片的 onclick 属性
 doc.select("input[type=text]").val(""); // 清空所有文本输入框中的文本


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值