链接:
1 背景和功能
2 分析喜马拉雅接口
Django Model设计:
先设计两张表,一张用来存储专辑(专辑名,封面图,专辑id,添加时间),另外一张存储专辑下每一集的信息(所属的专辑,序号,trackid,音频地址,添加时间)
![1240](https://i-blog.csdnimg.cn/blog_migrate/96caea9f665220887f58a15d01d20a92.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/64c76593866d2e31edb8889eacb7eace.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/460e8fc1014376bd8dd0e405ca42b4d5.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/abb877f813fca2d92355c67f7a163b8a.webp?x-image-process=image/format,png)
为了防止正在爬的时候,有人再次提交。加一个status表。
![1240](https://i-blog.csdnimg.cn/blog_migrate/8fc2e70bdc6119cc5df0e4565f748d6d.webp?x-image-process=image/format,png)
前端布局:
首页的布局什么的就简单写了,只需要一个输入框,能输入新的专辑id,再来个列表,展示已经爬过的专辑。
![1240](https://i-blog.csdnimg.cn/blog_migrate/d4965fe7992d660aa75520abb3d8db8b.webp?x-image-process=image/format,png)
输入框的样式是不是很熟悉呀?没错,直接抄的喜马拉雅主页的,连css名字都不想改。
![1240](https://i-blog.csdnimg.cn/blog_migrate/431d565f7c4905355d33d050d91bebf1.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/7e02de7b4d55574de4e1321745e4b1f1.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/1d5ef46d4965bdb620300f903ee773b3.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/a993b56c7837f79e21643a1dbe8cee19.webp?x-image-process=image/format,png)
输入了albumId之后,post到服务器,开始抓取index---trackid:
![1240](https://i-blog.csdnimg.cn/blog_migrate/0721c530e16ab1c2d1a5735028fd3049.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/9159183082f6a6e5d4cc09d37b03eaa3.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/9b0c9d81f104b5a00c459ccf3b7fe0d1.webp?x-image-process=image/format,png)
首页路由url配置:
![1240](https://i-blog.csdnimg.cn/blog_migrate/9792733bc41d9184e107218d8590a171.webp?x-image-process=image/format,png)
View中处理:
![1240](https://i-blog.csdnimg.cn/blog_migrate/00c24d83358aa1f133cdc5743797bc7c.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/a1395d72344de2746749ec841951d2ee.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/4bb3f41d94ddf34881f679b6da497dc2.webp?x-image-process=image/format,png)
把之前的两个接口封装到class ScrapManager中,没啥特别的地方,只是看起来要简洁些:
![1240](https://i-blog.csdnimg.cn/blog_migrate/3dbdd3c125a39af82b3b5b4e14060abc.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/11ac88b508307e0d8c27cca2c6ef53b9.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/e5d88bff4862e2ee424a117e9532ed9d.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/089abf384c2d8e70521d4baa9ffe18ff.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/249f143a960c6ccd86510ac8a03f4217.webp?x-image-process=image/format,png)
![1240](https://i-blog.csdnimg.cn/blog_migrate/fefa3945126af4d098cddfeb84090a0d.webp?x-image-process=image/format,png)
接下来完善播放页面具体功能。