链接:
1 背景和功能
2 分析喜马拉雅接口
Django Model设计:
先设计两张表,一张用来存储专辑(专辑名,封面图,专辑id,添加时间),另外一张存储专辑下每一集的信息(所属的专辑,序号,trackid,音频地址,添加时间)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/66addea069fa4f6ba71fdf4da54a75c5.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/c0c86f1a8cdb484b84bd9174d9a03aaa.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/9465351c066c47e4b4aaaccae50c8350.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/e8fc399c76984ac78eb6c199b9e843da.webp?x-oss-process=image/resize,w_1400/format,webp)
为了防止正在爬的时候,有人再次提交。加一个status表。
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/d7418e3f4fdf4eb3939b84135be3c165.webp?x-oss-process=image/resize,w_1400/format,webp)
前端布局:
首页的布局什么的就简单写了,只需要一个输入框,能输入新的专辑id,再来个列表,展示已经爬过的专辑。
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/a157262a711d40c8aaed772009f52167.webp?x-oss-process=image/resize,w_1400/format,webp)
输入框的样式是不是很熟悉呀?没错,直接抄的喜马拉雅主页的,连css名字都不想改。
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/e33c18a498f24cf2ac59d1fbab22e29f.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/49e5b43c4cea4bcc9eece1ae329ba86d.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/0bdbba30476c487e95b154e18fd4e941.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/b26ff375367c4645a17b643b455387f7.webp?x-oss-process=image/resize,w_1400/format,webp)
输入了albumId之后,post到服务器,开始抓取index---trackid:
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/b98a4338ebfc499d8ec0fd5a7704e63a.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/f11d94ca37794f12965e42af0f191bb6.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/383aec521a34493eb047d8cb1880a46f.webp?x-oss-process=image/resize,w_1400/format,webp)
首页路由url配置:
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/d648ea9ee5504bf0b50ee9749a6ca32f.webp?x-oss-process=image/resize,w_1400/format,webp)
View中处理:
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/2673bdbc8ccf40338c27244370b1ef33.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/6be156adebd84f16a206c9398bda8dfb.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/cc905fd4e3cd46f58e3aa0b3c35cd786.webp?x-oss-process=image/resize,w_1400/format,webp)
把之前的两个接口封装到class ScrapManager中,没啥特别的地方,只是看起来要简洁些:
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/888faa02d6104d7fa99e82c7cda6479f.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/dc597e1068d745f694acdb883e5dd420.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/1b198e1ad8b246008147277a5509d9b7.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/50c9a730d145425db65d5b2a95cbae14.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/d55c2df3957f422c8f4de41c16ce09f7.webp?x-oss-process=image/resize,w_1400/format,webp)
![](https://ucc.alicdn.com/miaw3pfh72di6/developer-article603333/20241020/4374f291ccb0431b810213862b79a1bf.webp?x-oss-process=image/resize,w_1400/format,webp)
接下来完善播放页面具体功能。