`
jaychang
  • 浏览: 728196 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

Jsoup对HTML 文档清理

 
阅读更多

 

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 为某些元素增加属性。

分享到:
评论

相关推荐

    jsoup中文帮助文档

    如果你已经有一个 HTML 文件,可以使用 `Jsoup.parse(File in, String charsetName)` 方法来加载文件内容为 Document 对象。 ```java File file = new File("path/to/your/file.html"); Document doc = Jsoup.parse...

    jsoup1.10.3包和jsoupApi帮助文档

    - **Document**:代表一个完整的HTML文档,可以从中获取元素、解析链接、执行CSS选择器等。 - **Element**:表示HTML中的单个元素,可以获取其属性、子元素、文本内容,也可以修改这些属性。 - **Selector**:提供...

    使用 jsoup 对 HTML 文档进行解析和操作

    Jsoup 是一个用Java编写的库,它提供了非常方便的方法来解析、操作和提取HTML文档中的数据。这篇博文将深入探讨如何使用Jsoup进行这些操作。 首先,让我们了解Jsoup的基本概念。Jsoup库模仿了DOM(文档对象模型)...

    Jsoup解析html中文文档

    **jsoup**是一款专为Java设计的HTML解析库,它可以帮助开发者方便地解析HTML文档,支持直接解析URL地址、HTML文本等内容。jsoup提供了简洁易用的API接口,用户可以通过DOM、CSS选择器甚至类似jQuery的方式提取和操作...

    jsoup 中文 api 文档

    jsoup 的 API 设计得非常友好,使得开发者可以方便地与 HTML 进行交互,无论是从网络上抓取数据还是对本地 HTML 文件进行操作。 **一、解析 HTML** 1. **连接(Connect)**: jsoup 提供了 `Jsoup.connect()` 方法...

    JSOUP的中文文档

    - `Jsoup.connect(String url).get()`:这个方法不仅解析HTML字符串,还可以直接从URL加载整个HTML文档,包括和部分。 5. **设置和修改数据**: - `element.attr("attrName", "newValue")`:用于设置元素的属性值...

    jsoup和jtidy 对html操作,将不规范的html转换为xhtml

    这使得Jtidy在处理大量不规则HTML文档时非常有用,尤其是在需要对网页内容进行深度分析或自动化处理的情况下。 使用这两个库,我们可以创建一个简单的流程来处理不规范的HTML文档: 1. 首先,使用jsoup解析HTML...

    jsoupAPI解析html

    2. **文档(Document)**:获取到的HTML内容会被解析成一个`Document`对象,这代表了整个HTML文档的结构。你可以通过这个对象进行DOM遍历和操作。 3. **选择器(Selector)**:jsoup支持CSS选择器,使得我们可以像...

    jsoup解析html所需包1.7.3

    JSoup是一款强大的Java库,专为处理和解析HTML文档而设计。它提供了简单易用的API,使开发者能够轻松地提取数据、操作DOM(文档对象模型)以及清理HTML。标题中的"jsoup解析html所需包1.7.3"表明我们将讨论的是JSoup...

    使用Jsoup解析html网页

    6. **节点操作**:Jsoup允许我们对元素进行增删改查的操作,如添加新的元素、删除元素、更新属性值或替换元素内容。 ### 示例代码 下面是一个简单的示例,展示了如何使用Jsoup连接到一个网页,选择特定元素并提取...

    Jsoup解析html

    Jsoup是一款非常强大的Java库,专门用于解析HTML文档。它提供了简单易用的API,使得开发者可以方便地抓取和操作HTML数据,而无需复杂的正则表达式或DOM解析器的繁琐工作。在这个主题中,我们将深入探讨Jsoup的主要...

    Jsoup库文件;Jsoup解析Java包

    Jsoup是一款强大的Java库,专为处理HTML文档而设计,同时也支持XML解析。它提供了简单易用的API,使得开发者可以方便地抓取、解析、修改以及清理HTML内容。Jsoup能够模拟浏览器的行为,理解HTML文档的结构,并通过...

    Jsoup源码以及chm文件

    2. CSS选择器:Jsoup支持CSS选择器,使得从HTML文档中选取特定元素变得极其简单。例如,`doc.select("div.title")` 将选取所有类名为"title"的div元素。 3. 清理不规范HTML:网页源代码可能存在不标准的HTML标签和...

    Jsoup解析html+xml

    1. **连接并下载HTML文档**:Jsoup提供`connect()`方法连接到URL并下载HTML内容,然后使用`get()`方法获取下载的文档。 ```java Document doc = Jsoup.connect("http://example.com").get(); ``` 2. **解析HTML...

    jsoup源码与文档

    6. **HTML清理**:可以使用jsoup清理不安全的HTML,使其符合特定的安全策略。 **二、jsoup API文档** `jsoup-1.7.2-javadoc.jar`包含了jsoup的完整API文档。通过查阅这个文档,开发者可以了解到jsoup的所有类、...

    jsoup 取html信息校验xml数据

    JSoup是一个非常强大的Java库,专门用于处理和解析HTML文档。它提供了一种简单而直观的方式来抓取、解析、修改以及清理HTML内容。JSoup的核心在于它能够理解和模拟浏览器对HTML的解析方式,使得开发者可以方便地获取...

    jsoup爬虫中文api

    Jsoup是一款用于Java的应用程序接口(API),主要用于从HTML文档中提取和操作数据。它提供了强大的功能,包括解析HTML文档、清洗用户输入的数据、从网站抓取数据等。通过Jsoup,开发者可以方便地与HTML文档交互,实现...

Global site tag (gtag.js) - Google Analytics