爲了綜合噹噹和豆瓣的圖書詳情數據,這裏在圖書信息從噹噹抓取成功後,根據isbn信息再從豆瓣獲取一次圖書詳情數據。spa
相關豆瓣圖書的接口地址爲:code
https://developers.douban.com/wiki/?title=book_v2#get_isbn_bookblog
而後將豆瓣與噹噹的圖書詳情進行比對,豆瓣若是存在對應的字段則以豆瓣的爲準:接口
1 private boolean compareBookInfo(BookInfo srcInfo, BookInfo dstInfo){ 2 boolean update = false; 3 4 //title 5 if(!StringUtils.isEmpty(srcInfo.getTitle()) 6 && !srcInfo.getTitle().equalsIgnoreCase(dstInfo.getTitle())){ 7 dstInfo.setTitle(srcInfo.getTitle()); 8 update = true; 9 } 10 11 //subtitle 12 if(!StringUtils.isEmpty(srcInfo.getSubtitle()) 13 && !srcInfo.getSubtitle().equalsIgnoreCase(dstInfo.getSubtitle())){ 14 dstInfo.setSubtitle(srcInfo.getSubtitle()); 15 update = true; 16 } 17 18 //image 19 if(!StringUtils.isEmpty(srcInfo.getImage()) 20 && !srcInfo.getImage().equalsIgnoreCase(dstInfo.getImage()) 21 && ( StringUtils.isEmpty(dstInfo.getImage()) || dstInfo.getImage().contains("book-default")) 22 ){ 23 dstInfo.setImage(srcInfo.getImage()); 24 update = true; 25 } 26 27 //author 28 if(!StringUtils.isEmpty(srcInfo.getAuthor()) 29 && !srcInfo.getAuthor().equalsIgnoreCase(dstInfo.getAuthor())){ 30 dstInfo.setAuthor(srcInfo.getAuthor()); 31 update = true; 32 } 33 34 //author_info 35 if(!StringUtils.isEmpty(srcInfo.getAuthor_intro()) 36 && !srcInfo.getAuthor_intro().equalsIgnoreCase(dstInfo.getAuthor_intro())){ 37 dstInfo.setAuthor_intro(srcInfo.getAuthor_intro()); 38 update = true; 39 } 40 41 //rating 42 if(!StringUtils.isEmpty(srcInfo.getRating()) 43 && !srcInfo.getRating().equalsIgnoreCase(dstInfo.getRating())){ 44 dstInfo.setRating(srcInfo.getRating()); 45 update = true; 46 } 47 48 //price 49 if(!StringUtils.isEmpty(srcInfo.getPrice()) 50 && StringUtils.isEmpty(dstInfo.getPrice())){ 51 dstInfo.setPrice(srcInfo.getPrice()); 52 update = true; 53 } 54 55 //tags 56 if(!StringUtils.isEmpty(srcInfo.getTags()) 57 && !srcInfo.getTags().equalsIgnoreCase(dstInfo.getTags())){ 58 dstInfo.setTags(srcInfo.getTags()); 59 update = true; 60 } 61 62 //summary 63 if(!StringUtils.isEmpty(srcInfo.getSummary()) 64 && !srcInfo.getSummary().equalsIgnoreCase(dstInfo.getSummary())){ 65 dstInfo.setSummary(srcInfo.getSummary()); 66 update = true; 67 } 68 69 //catalog 70 if(!StringUtils.isEmpty(srcInfo.getCatalog()) 71 && !srcInfo.getCatalog().equalsIgnoreCase(dstInfo.getCatalog())){ 72 dstInfo.setCatalog(srcInfo.getCatalog()); 73 update = true; 74 } 75 76 return update; 77 }
能夠在這個基礎上繼續完善對豆瓣和噹噹的數據合併處理。get