面臨的第一個問題是圖書數據源從哪來,調研了一圈大概是如下幾種方式:api
一、噹噹或京東的官方圖書api(查了一圈一無所得,收費或免費的都沒找到)接口
二、豆瓣圖書 https://developers.douban.com/wiki/?title=book_v2it
豆瓣的主要問題一個是訪問次數有限制,另外一個是信息不全,部分圖書或者新書在豆瓣無記錄。搜索
三、聚合 https://www.juhe.cn技術
聚合的接口整理的比較好,但一個是要收費,另外一個是圖書信息也不是最完整的。developer
綜上所述,最後不得已考慮的方案是:數據
一、按照噹噹的分類爬取每一個子分類下的全部圖書數據。噹噹圖書分類以下:項目
http://category.dangdang.com/?ref=www-0-C查詢
實際上這裏每一個分類下最多能爬取到100頁數據,應該是噹噹作了限制,但通常來講也夠用了。co
二、綜合豆瓣數據
噹噹爬取到的信息與豆瓣作比對,綜合豆瓣有用的信息而後入庫。
三、因爲噹噹和豆瓣的限制,即便完成了全部的數據抓取,仍有部分數據是缺失的。 這裏的彌補辦法是:
若是按照ISBN查詢圖書接口的時候失敗, 則出發圖書搜索接口,從噹噹的頁面搜索這本圖書,而後解析頁面獲得圖書詳細信息。
按照上述的技術方案,基本能夠知足項目需求,而且確實作到了圖書庫的創建和不斷完善。
接下來說一下具體實現。