过去几周我一直在使用 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/