python和tkinter写了一个豆瓣音乐下载工具

前天自己的阿里妈妈账号再次被冻结了,好不容易有5000多收入,一下又没了。

没办法,还是拿自己的一点小手艺,赚点吃饭的钱,花一天时间写了这个小工具。

douban-music-downloader

可以下载豆瓣的红心兆赫、豆瓣小站大部分专辑。下载任意兆赫的功能没有写,时间有限。

douban-downloader-main

这个程序我希望能够收费提供,所以虽然公开代码,但并不希望你生成无限制的exe免费提供,请谅解。

Tkinter是single-threaded,记住这一点比较重要。 对于耗时的操作,比如下载,需要创建新的线程来完成。

我在程序启动时创建了5个daemon线程,用于下载MP3,一般,5个线程就足够达到较好的下载效率。

windows可执行文件 (请注意,文件夹名称中不能存在中文)

下载源代码 (如果你做了任何改进,欢迎提交给我。 :))

扫描"豆瓣音乐"所有专辑的简单Python脚本

我需要一些音乐数据,而 豆瓣音乐 上相关数据是非常齐全的。

即使是十分小众、鲜有人听过的专辑,豆瓣也提供了较为详细的描述。

摆在我面前的第一个问题是,如何将豆瓣音乐上的专辑一网打尽,一个不遗漏地抓取到。

我们观察某个专辑的页面: http://music.douban.com/subject/1415369/

看到subject后跟着一串数字ID,这时候一个简单的思路已经出来了:

将id从1不断递增,扫描完所有的ID,检查哪些ID是存在的

又观察到大多数专辑页面上存在相关推荐,也就是那个“喜欢某某专辑的人也喜欢… …”。

这里存在一对N的超链接映射,最终形成了网络,于是可以有第二个思路:

将某个专辑加入队列,从它出发,通过 “也喜欢” 来获取新专辑,并将这些新专辑加入队尾

每完成一次操作,就从队列中删除队首的专辑

循环上面的过程,直到处理完队列中的所有元素

最终获取到的就是包含第一个元素的网

当然,上面的思路是有缺陷的,那些孤立的专辑无法被包括进来。

继续阅读扫描"豆瓣音乐"所有专辑的简单Python脚本

利用Redirector插件去掉Google跳转和免费收听豆瓣FM Pro

本文描述的方法已失效

本文描述的方法是在通过Chrome插件实现的,因此,如果你已经安装了Chrome浏览器,请继续浏览下面的内容。

Redirector插件

这是一个用于URL Redirect和修改HTTP Header的Chrome插件。

安装这个插件

1. 去掉Google搜索结果页面中的跳转链接

安装完插件,我们可以开始添加跳转规则。

一个可行操作的方法是,在浏览器中的地址栏输入: chrome://extensions/

然后选择Redirector插件的”选项“,进入”规则管理器“。

如下图所示:

redirector-settings-manager

继续阅读利用Redirector插件去掉Google跳转和免费收听豆瓣FM Pro