項目名稱: 豆瓣圖書個性化推薦
需求簡述:從給定的豆瓣用戶名中,獲取該用戶所有豆瓣好友列表,從豆瓣好友中找出他們讀過的且評分5星的圖書,如果同一本書被不同的好友評5星,評分人數越多推薦度越高。
輸入:豆瓣用戶名
輸出:豆瓣好友中評分最高,評分人數最多,且我沒讀過的10本書
步驟構想:
1. 通過給定的用戶名,將下面鏈接douban_id替換后可查看該用戶關注的好友列表(訪問該路徑需要先登錄)
https://www.douban.com/people/douban_id/contacts
但如果是查看自己關注的好友則會跳轉到:
https://www.douban.com/contacts/list
這兩個頁面展現形式不一樣
2. 得到好友列表后通過訪問 https://www.douban.com/people/douban_id/ 獲取用戶信息,保存在user表中, 字段包括:用戶名、常居地、加入時間、簽名,讀過的書、想讀的書、在讀的書、最后更新時間
3. 得到好友列表后通過訪問以下鏈接可以查看好友讀過的書,獲取書的信息和好友對書本的評分信息
https://book.douban.com/people/douban_id/collect
獲取所有讀過的書籍id列表(需要往后翻頁,翻頁的規律為每頁15本書,https://book.douban.com/people/Fenng/collect?start=0&sort=time&rating=all&filter=all&mode=grid,從start=0開始第一頁,start=15第二頁,start=30第三頁以此類推)
書的信息:https://book.douban.com/subject/book_id/ 包括ISBN、書名、作者、出版日期、頁數、定價、封面圖片、豆瓣整體評分、評價人數、內容簡介、作者簡介等
書的信息是靜態信息,存入book表
好友評分、好友短評、讀過的時間:
https://book.douban.com/people/Fenng/collect?start=300&sort=time&rating=all&filter=all&mode=grid
好友對書本的評價信息存入rating表,user_id, book_id做外鍵
4. 在rating表中找出好友評價5星的書,且我沒看過的,然后按評價人數desc排序,取前十本