圖書信息庫完整解決方案(六)豆瓣接口

爲了綜合噹噹和豆瓣的圖書詳情數據,這裏在圖書信息從噹噹抓取成功後,根據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

相關文章
相關標籤/搜索