documentdocumentElement返回文档的根节点 documentactiveElement返回当前文档中被击活的标签节点 eventfromElement返回鼠标移出的源节点 eventtoElement返回鼠标移入的源节点 eventsrcElement返回激活事件的源节点
这是开发者工具解析到的一个论坛页面结构。。
可以看到每一个a标签和br标签之间总会夹着一个text,,也就是密码文本。而我根据网上的
API教程:
siblingA ~ siblingX: 查找A元素之前的同级X元素,比如:h1 ~ p
写成这样
Elements links_1 = tdsmselect("#postmessage_24532691>br~text");
然后打印_links_1size为0也就是并没有匹配到一个元素
特此求正确写法
1、用找的标签调用一下text()这个方法就可以得到两个标签之间的内容了
2、Element对象的textNodes()或ownText()方法。
这段html实际上是不符合规范的。在用jsoup解析时会出现问题。
我想到一个办法解决这个问题。
首先我想你应该是想得到 标题、馆藏复本的数目、可借复本的数目、朱印宏编著和长江出版社。
所以我们先把上面html里面的文字全部得到即:
java开发解析 馆藏复本:3 可借复本:0 朱印宏编著 长江出版社
然后我想在这段文字中 “馆藏复本:”、“可借复本:”、“编著” 这几个字应该是固定不变的。所以我们可以用正则表达式去对它进行解析,得到你想要的文字。
代码如下:
public class Test {public static void main(String[] args) {
String html = "<div class=\"list_books\" id=\"list_books\"><td>java开发解析</td><p><span><strong>馆藏复本:</strong>3 <br /> <strong>可借复本:</strong>0 </span>朱印宏编著 <br /> 长江出版社</p> </div>";
Document doc = Jsoupparse(html);
String e = docselect("#list_books")text()replaceAll("[\\s]+", "");
//Systemoutprintln(e);
Pattern p = Patterncompile("^()馆藏复本:([\\d]+)可借复本:([\\d]+)()编著()$");
Matcher m = pmatcher(e);
if(mfind()){
for(int i=1;i<=mgroupCount();i++){
Systemoutprintln(mgroup(i));
}
}
}
}
如果如下:
java开发解析3
0
朱印宏
长江出版社
以上就是关于jsoup怎么获取两个标签之间的text全部的内容,包括:jsoup怎么获取两个标签之间的text、(java爬虫)jsoup为什么两个标签之间的文本不显示、用jsoup解析获取一段网页内容的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)