java - JSoup:从类标签中提取一个词

标签 java string extract jsoup

过去几周我一直在使用 JSoup 成功地从网页中抓取数据;然而,我在试图找出一种方法来从类标签中提取单个单词而不是整个文本时走到了死胡同。

这是我正在使用的 Java 代码:

// store all the search results in the elmAllSearchResults element
Element elmAllSearchResults = doc.getElementById("SearchResults"); 
// extract the detDesc class from elmAllSearchResults
Elements elmSize = elmAllSearchResults.getElementsByClass("desc");

要提取与此类似的多行:

<font class="desc">Date 11-04; 09:21, Size 8100.00 MB, User <a class="desc" href="/member/aUser/" title="Browse">
<font class="desc">Date 12-04; 09:21, Size 62 MB, User <a class="desc" href="/member/bUser/" title="Browse">

但现在我只想从该文本字符串中提取大小(8100.00 MB,在本例中为 62 MB)。 由于包裹在任何标签中不容易识别尺寸,因此我似乎无法找到获取它的方法。

这可能吗?

谢谢。

最佳答案

Jsoup 只会到达单个 HTML 元素为止。如果你想解析它们的文本主体,它们本质上是 String,那么你需要获取 String based methods而不是 substring()indexOf()replaceAll()

例如,如果你能保证所需的信息总是在"、Size""、User"之间,那么你应该对String进行子串 关于:

String before = ", Size ";
String after = ", User";

for (Element element : elements) {
    String text = element.text();
    String size = text.substring(text.indexOf(before) + before.length(), text.indexOf(after));
    // ...
}

关于java - JSoup:从类标签中提取一个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8371548/

相关文章:

java.util.MissingResourceException : Can't find bundle for base name javax. servlet.LocalStrings,语言环境 es_ES

java - 如何使用 Java 创建 CaffeineCache 对象?

Java重写静态方法

Java 文本 block : Mix of Tabs and Spaces within Indentation Prefixes

excel - 复杂文本提取

c++ - 从 python 中提取类

java - 如何从服务器下载文件

Python json 编写 ValueError : No JSON object could be decoded

javascript - 使用 RegExp 匹配括号中的数字然后递增它

c - 如何从十六进制值中提取低位字节?