jsoup 在提供强大的 API 同时,人性化方面也做得非常好。在做网站的时候,经常会提供用户评论的功能。有些用户比较淘气,会搞一些脚本到评论内容中,而这些脚本可能会破坏整个页面的行为,更严重的是获取一些机要信息,例如 XSS 跨站点攻击之类的。
jsoup 对这方面的支持非常强大,使用非常简单。看看下面这段代码:
清单 5.
String unsafe = "<p><a href='http://www.oschina.net/' onclick='stealCookies()'> 开源中国社区 </a></p>"; String safe = Jsoup.clean(unsafe, Whitelist.basic()); // 输出 : // <p><a href="http://www.oschina.net/" rel="nofollow"> 开源中国社区 </a></p>
jsoup 使用一个 Whitelist 类用来对 HTML 文档进行过滤,该类提供几个常用方法:
表 1. 常用方法:
none() | 只允许包含文本信息 |
basic() | 允许的标签包括:a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, strike, strong, sub, sup, u, ul, 以及合适的属性 |
simpleText() | 只允许 b, em, i, strong, u 这些标签 |
basicWithImages() | 在 basic() 的基础上增加了图片 |
relaxed() | 这个过滤器允许的标签最多,包括:a, b, blockquote, br, caption, cite, code, col, colgroup, dd, dl, dt, em, h1, h2, h3, h4, h5, h6, i, img, li, ol, p, pre, q, small, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, u, ul |
如果这五个过滤器都无法满足你的要求呢,例如你允许用户插入 flash 动画,没关系,Whitelist 提供扩展功能,例如 whitelist.addTags("embed","object","param","span","div"); 也可调用 addAttributes 为某些元素增加属性。
相关推荐
如果你已经有一个 HTML 文件,可以使用 `Jsoup.parse(File in, String charsetName)` 方法来加载文件内容为 Document 对象。 ```java File file = new File("path/to/your/file.html"); Document doc = Jsoup.parse...
- **Document**:代表一个完整的HTML文档,可以从中获取元素、解析链接、执行CSS选择器等。 - **Element**:表示HTML中的单个元素,可以获取其属性、子元素、文本内容,也可以修改这些属性。 - **Selector**:提供...
Jsoup 是一个用Java编写的库,它提供了非常方便的方法来解析、操作和提取HTML文档中的数据。这篇博文将深入探讨如何使用Jsoup进行这些操作。 首先,让我们了解Jsoup的基本概念。Jsoup库模仿了DOM(文档对象模型)...
**jsoup**是一款专为Java设计的HTML解析库,它可以帮助开发者方便地解析HTML文档,支持直接解析URL地址、HTML文本等内容。jsoup提供了简洁易用的API接口,用户可以通过DOM、CSS选择器甚至类似jQuery的方式提取和操作...
jsoup 的 API 设计得非常友好,使得开发者可以方便地与 HTML 进行交互,无论是从网络上抓取数据还是对本地 HTML 文件进行操作。 **一、解析 HTML** 1. **连接(Connect)**: jsoup 提供了 `Jsoup.connect()` 方法...
- `Jsoup.connect(String url).get()`:这个方法不仅解析HTML字符串,还可以直接从URL加载整个HTML文档,包括和部分。 5. **设置和修改数据**: - `element.attr("attrName", "newValue")`:用于设置元素的属性值...
这使得Jtidy在处理大量不规则HTML文档时非常有用,尤其是在需要对网页内容进行深度分析或自动化处理的情况下。 使用这两个库,我们可以创建一个简单的流程来处理不规范的HTML文档: 1. 首先,使用jsoup解析HTML...
2. **文档(Document)**:获取到的HTML内容会被解析成一个`Document`对象,这代表了整个HTML文档的结构。你可以通过这个对象进行DOM遍历和操作。 3. **选择器(Selector)**:jsoup支持CSS选择器,使得我们可以像...
JSoup是一款强大的Java库,专为处理和解析HTML文档而设计。它提供了简单易用的API,使开发者能够轻松地提取数据、操作DOM(文档对象模型)以及清理HTML。标题中的"jsoup解析html所需包1.7.3"表明我们将讨论的是JSoup...
6. **节点操作**:Jsoup允许我们对元素进行增删改查的操作,如添加新的元素、删除元素、更新属性值或替换元素内容。 ### 示例代码 下面是一个简单的示例,展示了如何使用Jsoup连接到一个网页,选择特定元素并提取...
Jsoup是一款非常强大的Java库,专门用于解析HTML文档。它提供了简单易用的API,使得开发者可以方便地抓取和操作HTML数据,而无需复杂的正则表达式或DOM解析器的繁琐工作。在这个主题中,我们将深入探讨Jsoup的主要...
Jsoup是一款强大的Java库,专为处理HTML文档而设计,同时也支持XML解析。它提供了简单易用的API,使得开发者可以方便地抓取、解析、修改以及清理HTML内容。Jsoup能够模拟浏览器的行为,理解HTML文档的结构,并通过...
2. CSS选择器:Jsoup支持CSS选择器,使得从HTML文档中选取特定元素变得极其简单。例如,`doc.select("div.title")` 将选取所有类名为"title"的div元素。 3. 清理不规范HTML:网页源代码可能存在不标准的HTML标签和...
1. **连接并下载HTML文档**:Jsoup提供`connect()`方法连接到URL并下载HTML内容,然后使用`get()`方法获取下载的文档。 ```java Document doc = Jsoup.connect("http://example.com").get(); ``` 2. **解析HTML...
jsoup 是一个 Java 库,专门用于处理 HTML 文档,提供了强大的解析、提取、修改以及清理功能。在本文中,我们将深入探讨 jsoup 的主要功能,包括如何解析和遍历 HTML 文档,抽取数据,修改内容,以及进行 HTML 清理...
6. **HTML清理**:可以使用jsoup清理不安全的HTML,使其符合特定的安全策略。 **二、jsoup API文档** `jsoup-1.7.2-javadoc.jar`包含了jsoup的完整API文档。通过查阅这个文档,开发者可以了解到jsoup的所有类、...
JSoup是一个非常强大的Java库,专门用于处理和解析HTML文档。它提供了一种简单而直观的方式来抓取、解析、修改以及清理HTML内容。JSoup的核心在于它能够理解和模拟浏览器对HTML的解析方式,使得开发者可以方便地获取...
Jsoup同样可以加载本地文件系统中的HTML文档。使用`Jsoup.parse(File input, String charsetName, String baseUri)`方法,可以从文件中读取HTML内容,构建Document对象。 #### 数据抽取 Jsoup支持通过DOM方法来遍历...
Jsoup是一款用于Java的应用程序接口(API),主要用于从HTML文档中提取和操作数据。它提供了强大的功能,包括解析HTML文档、清洗用户输入的数据、从网站抓取数据等。通过Jsoup,开发者可以方便地与HTML文档交互,实现...