Python个人项目--豆瓣图书个性化推荐

时间:2021-10-19 10:14:42

项目名称: 豆瓣图书个性化推荐

需求简述:从给定的豆瓣用户名中,获取该用户所有豆瓣好友列表,从豆瓣好友中找出他们读过的且评分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排序,取前十本