豆瓣学习 :解析 豆瓣新书 html页面

  <li>
                <div class="detail-frame">
                    <h2>
                        少年PI的奇幻漂流(插图珍藏版)
                    </h2>
                    <p class="color-gray">
                        [加拿大] 扬·马特尔 / 2012-11-28 / 译林出版社 / 35.00元 / 平装
                    </p>
                    <p>
                        一艘孤单小船,一个落难少年,一只孟加拉虎,这是南太平洋上,最艰难的生存考验。《少年pi的奇幻漂流》是作者马特尔的第二部小说,但是一面市便惊艳国际文坛,获奖无数,成为畅销书。小说描写一个印度男孩和一只叫理查德•帕克的孟加拉虎一起在太平洋上漂流227天后获得重生的神奇故事。
历磨难而成长,因信念而不凡。小说内容关于冒险、希望、奇迹、生存和信心,是一 ...
                    </p>
                </div>

                <a href="http://book.douban.com/subject/20326626/"><img src="http://img3.douban.com/mpic/s24223033.jpg"/></a>
            </li>

案例如上

代码

import java.net.URL;
import java.net.URLConnection;
import java.util.List;

import net.htmlparser.jericho.Element;
import net.htmlparser.jericho.Source;


public class TestNewBook {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		String path ="http://book.douban.com/latest";
		URL url = new URL(path);
		URLConnection conn = url.openConnection();
		Source source = new Source(conn);
		
		List<Element>  lielements  = source.getAllElements("li");
		System.out.println(lielements.size());
		for(Element lielement : lielements){
			List<Element> childrenlists = lielement.getChildElements();
			if(childrenlists.size()==2){
			
			  if("detail-frame".equals(childrenlists.get(0).getAttributeValue("class"))){
				  //数目对应的div信息 
				  Element div = childrenlists.get(0);
				  List<Element> divChildren = div.getChildElements();
				  String name = divChildren.get(0).getTextExtractor().toString();
				  System.out.println("书名:"+name);
				  String description = divChildren.get(1).getTextExtractor().toString();
				  System.out.println("描述: "+description);
				  String summary = divChildren.get(2).getTextExtractor().toString();
				  System.out.println("简介: "+summary);
				
				  Element achild = childrenlists.get(1);
				  String iconpath = achild.getChildElements().get(0).getAttributeValue("src");
				  System.out.println("图片地址 : "+iconpath);
				  System.out.println("---------------------");
			  }
				
			}
			
		}
		
	}

}

使用到了 

http://blog.csdn.net/sfshine/article/details/8213955

里面提到的jar


posted @ 2012-11-27 21:46  sfshine  阅读(271)  评论(0编辑  收藏  举报