我想用jsoup解析网页 遇到问题了谢谢大家

Junjie_Wong 2013-12-24 10:12:53
这是要解析的网站代码
<li class="book_list_info">
<h3>
<span>中文图书</span>
<a href="item.php?marc_no=0001355091">
<b>1.<em style="color:#F00;">暮光之城</em>,暮色.第2版</b></a>
I712.45/4827-1=2/1
</h3>
<p> <span>馆藏复本:1 <br>
可借复本:1</span> (美) 斯蒂芬妮·梅尔著 <br>
接力出版社 2012 <br>
<img src="../tpl/images/star0.gif" title="总体评分及评价人数">(0)
<a href="item.php?marc_no=0001355091" class="tooltip" onmouseover="showDetail('0001355091')"
onmouseout="hideDetail('0001355091')">馆藏<s></s>
</a>
</p>
<div id="detail0001355091" style="display:none;">加载中...</div>
</li>


一部分已经解析出来了,还差(美) 斯蒂芬妮·梅尔著和接力出版社 2012分别解析放到arraylist里面
怎么解析呢,谢谢大家
...全文
111 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
suciver 2013-12-25
  • 打赏
  • 举报
回复
jsoup是可以使用像jquery一样的选择器的,如果楼主对jquery熟悉的话,可以使用jquery的选择器取到此li里的p元素的html内容再用正则取</span>到<img之间的数据再用br标签分割就可以了

Document doc=Jsoup.parse(你的html);
Element element=doc.select("li.book_list_info p").first();
String html=element.html();
Matcher m=Pattern.compile("(?s)(?<=</span>).*?(?=<img)").matcher(html);
if(m.find()){
  System.out.println(Arrays.asList(m.group().split("<br(\\s*/)?>")));  
}
tony4geek 2013-12-25
  • 打赏
  • 举报
回复
用正则取 </span> 到 <br> 间的数据。
Test_LD 2013-12-25
  • 打赏
  • 举报
回复
给楼主一段获取匹配字符的代码,楼主可以依次缩小字符条件范围获取
/*
	 * 根据开头的字符结尾的字符以及之间的字符返回匹配的字符串
	 * str 待匹配的字符串,begin开始匹配的字符串,key匹配的中间字符,end匹配的结束字符
	 */
	public static String[] match(String str, String begin,String key,String end)
	{
	    String [] strMc = new String[9]; 
	    int beginIndex = str.indexOf(begin);
	    int endLength = end.length();
	    int endIndex = str.indexOf(end,beginIndex+begin.length())+endLength;
	    int i = 0;
	    while(-1!=beginIndex&&-1!=endIndex)
	    {
	        String sub = str.substring(beginIndex, endIndex);
    	    if(-1!=sub.indexOf(key))
            {
    	        strMc[i] = new String(str.substring(beginIndex, endIndex+endLength));
    	        i++;
            }
    	    beginIndex = str.indexOf(begin, endIndex);
            endIndex = str.indexOf(end, beginIndex);
	    }
	    
	    return strMc;
	}

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧