jsoup从1.13.1升级到1.15.3后,没有Whitelist类了
时间: 2024-10-24 17:10:01 浏览: 57
jsoup-1.15.3.jar
在jsoup 1.13.1之后的版本(如1.15.3),Whitelist类已经被移除,因为这个特性在新的API设计中不再直接存在。如果你想限制解析的内容,可以考虑使用以下替代方法:
1. **ElementSelectors**:创建一个`ElementSelectors`对象,并使用`.except()`方法排除你不希望加载的标签或属性。例如,`ElementSelectors.all().except(ElementSelectors.tag("script"))`将只允许除了`<script>`以外的所有元素。
2. **Document.Builder** 的 `parser()` 方法:设置一个自定义的`Parser`,并使用它的`whitelist()`、`blacklist()`方法来指定要加载或忽略的标签或属性。
```java
Document doc = Jsoup.connect("http://example.com")
.parser(new Parser().whitelist(Elements.tagName("a"), Elements.attr("href")));
```
3. **Document.LoadFlags**:在连接请求之前,可以设置`LoadFlags`,比如`LOAD_NO_IMAGES`来阻止图片的自动加载。
```java
Connection connection = Jsoup.connect("http://example.com");
connection.userAgent(userAgent);
connection.timeout(timeout); // 可选,设置超时
connection.ignoreContentType(true); // 如果服务器返回非HTML内容,仍尝试解析
connection.parseOptions(ParseOption.IGNORE_IF_NONEXISTENT);
connection.loadFlags(ConnectionLoadFlags.LOAD_NO_IMAGES);
Document doc = connection.get();
```
请注意,jsoup的文档会有详细的迁移指南和新特性的介绍,帮助开发者适应版本更新的变化。
阅读全文