用于响应的 HTML 解析器 - Java

发布于 2024-12-26 07:26:05 字数 110 浏览 2 评论 0原文

我使用 HttpClient 访问特定网站,得到的响应是 HTML 形式。我应该使用哪个解析器或方法来解析 HTML 并从响应中获取我想要的内容。 注意:我将 HttpClient 与 Java 一起使用

Im using HttpClient to access a particualr website and the response i get is in the form of an HTML. Which parser or method I should use the parser the HTML and get what I want from the response.
Note: Im using HttpClient with Java

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

葮薆情 2025-01-02 07:26:06

使用 jsoup

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

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

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

jsoup 旨在处理各种 HTML
荒野;从原始和验证,到无效的标签汤; jsoup 会
创建一个合理的解析树。

Use jsoup.

jsoup is a Java library for working with real-world HTML. It
provides a very convenient API for extracting and manipulating data,
using the best of DOM, CSS, and jquery-like methods.

jsoup implements the WHATWG HTML5 specification, and parses HTML to
the same DOM as modern browsers do.

  • scrape and parse HTML from a URL, file, or string
  • find and extract data, using DOM traversal or CSS selectors
  • manipulate the HTML elements, attributes, and text
  • clean user-submitted content against a safe white-list, to prevent XSS attacks
  • output tidy HTML

jsoup is designed to deal with all varieties of HTML found in the
wild; from pristine and validating, to invalid tag-soup; jsoup will
create a sensible parse tree.

浅暮の光 2025-01-02 07:26:06

我会尝试 htmlcleaner

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

您可以将 XPath 与 htmlcleaner 一起使用来获取 xml/html 标记内的内容。这是一个不错的
示例 Xpath 示例< /a>

I would give htmlcleaner a try.

HTMLCleaner is Java library used to safely parse and transform any HTML found on web to well-formed XML. It is designed to be small, fast, flexible and independant. HtmlCleaner may be used in java code, as command line tool or as Ant task. Result of parsing is lightweight document object model which can easily be transformed to standards like DOM or JDom, or serialized to XML output in various ways (compact, pretty printed and so on).

You can use XPath with htmlcleaner to get contents within xml/html tags.Here is a nice
example Xpath Example

信仰 2025-01-02 07:26:06

使用 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();
...

Sample code with jsoup and 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();
...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文