豆瓣学习 :解析 豆瓣新书 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