新浪的那个天气的值是通过js动态加载的,原始html页面是<div id="SI_Weather_Wrap" class="now-wea-wrap clearfix"></div> 。
而jsoup只是对html进行解析,所以是找不到js动态生成的哪些信息的。
获取所有双色球数据,但是返回的都是html页面,需要进行处理,最开始想着用dom4j处理,发现不可行。之后想着自己处理,但是又太麻烦了,然后找到了jsoup,使用起来非常简单。
*** 作、解析HTML格式的数据
jsoup的使用和dom4j非常类似,最开始都是先获得一个Document对象,然后获取需要的子元素或节点进行 *** 作,但是jsoup可以通过dom、css、和类似jquery的方法( 选择器 )来获取需要的数据。
选择器官方API
其他方法详见官方API
Node
Element
Elements
Whitelist官方API
其实你这个问题说简单也简单,说麻烦也麻烦,首先拼真实的url时,它是通过一个js方法实现的,只要用java代码模拟这个过程就OK了。
麻烦的是你这个URL中含有中文 ,传入时会乱码,导致查询结果为空。
不知道,我说的对不对,我们可以讨论一下。
Document doc = Jsoupconnect("
Jsoup了解一下。
这段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
朱印宏
长江出版社
String html = getHtmlByUrl("地址");//或者直接是内容
if (html != null && !""equals(html)) {
Document doc = Jsoupparse(html);
Element content = docgetElementById("list");
Elements linksElements = contentgetElementsByTag("a");
for (Element ele : linksElements) {
String a = elechild((elesize())-1)attr("href");
String title = eletext();
Systemoutprintln("------------------------");
Systemoutprintln(a);
}
}
以上就是关于java语言获取网页标签中的内容全部的内容,包括:java语言获取网页标签中的内容、jsoup 的使用、使用jsoup解析html网页时,如果一个标签<a href=“javascript:getSearch(10)">[2]</a>怎么解析到这个href等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)