用于响应的HTML解析器 - Java

时间:2012-01-10 22:44:20

标签: java httpclient html-parser

我使用HttpClient访问特定网站,我得到的回复是HTML格式。哪个解析器或方法我应该使用解析器HTML并从响应中获取我想要的内容。 注意:我使用带有Java的HttpClient

3 个答案:

答案 0 :(得分:4)

使用jsoup

  

jsoup是一个用于处理真实HTML的Java库。它   提供了一个非常方便的API来提取和操作数据,   使用最好的DOM,CSS和类似jquery的方法。

     

jsoup实现了WHATWG HTML5规范,并将HTML解析为   与现代浏览器相同的DOM。

     
      
  • 从网址,文件或字符串中抓取并解析HTML
  •   
  • 使用DOM遍历或CSS选择器查找和提取数据
  •   
  • 操纵HTML元素,属性和文本
  •   
  • 针对安全白名单清除用户提交的内容,以防止XSS攻击
  •   
  • 输出整洁的HTML
  •   
     

jsoup旨在处理中发现的各种HTML   野生;从原始和验证到无效的标签汤; jsoup会   创造一个明智的解析树。

答案 1 :(得分:1)

我会试试htmlcleaner

  

HTMLCleaner是一个Java库,用于安全地解析和转换在Web上找到的任何HTML到格式良好的XML。它设计小巧,快速,灵活且独立。 HtmlCleaner可用于java代码,命令行工具或Ant任务。解析的结果是轻量级文档对象模型,可以很容易地转换为DOM或JDom等标准,或者以各种方式序列化为XML输出(紧凑,漂亮的打印等)。

你可以使用XPath和htmlcleaner来获取xml / html标签内的内容。这是一个不错的选择      例如Xpath Example

答案 2 :(得分:0)

使用jsoup和Java8的示例代码:

// Imports:
...
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;
...

// Execute the GET request:
...
HttpClient clientGet = HttpClientBuilder.create().build();
HttpGet get = new HttpGet(url);
HttpResponse res = clientGet.execute(get);

// Use jsoup to parse the html response:
// E.g. find all links with reference to myapp:
//  <a href="myapp">HelloWorldApp</a>
Document doc = Jsoup.parse(IOUtils.toString(res.getEntity().getContent(), StandardCharsets.UTF_8));
Elements links = doc.select("a[href~=myapp]");
for (Element link : links)
    String appName = link.html();
...