之前写过从 Teahour.FM 下载 podcast博客,最近有空听了其中一部分,觉得质量还不错。

另外,近期又发现了一个新的 podcast,叫「IT 公论」,主题是科技方面的。看了这个 podcast 的介绍页面,感觉应该不错,于是便打算下载下来。

由于上次写的代码里,下载部分的代码是完全可以复用的,所以整个过程还是相当顺利的。这次处理的重点在下载链接(.mp3 文件)的获取上,因为「IT 公论」的音频下载链接并不像 Teahour.FM 那么有规律,因此还需要用正则表达式来获取。

基本思路是:打开每期 podcast 的页面(如果是第 N 期,页面地址是 http://www.itgonglun.com/episodes/N),然后在页面的 HTML 代码用正则表达式匹配得到下载链接。

几点注意事项:

  • 务必采用最通用的获取下载链接获取方式。

    第 48 期为例,一个非常明显的路径是直接下载节目这个按钮,对应的 HTML 代码是:

    		直接下载节目

    看起来方法似乎非常明显、呼之欲出了。但是……不通用。因为并不是每一期都有直接下载节目这个按钮,比如第 1 期第 3 期

    最通用的方法是最下方的在线收听的按钮。还是以第 48 期为例,对应 HTML 代码是:

    		data-url="http://traffic.libsyn.com/itgonglun/IT__ep48_-_VR_-_We_have_to_do_our_part_too_GM.mp3"
  • 某些期 podcast 的下载 URL 不规范,写正则表达式时需要注意。

    第 23 期为例,对应 HTML 代码是:

    		data-url="http://traffic.libsyn.com/itgonglun/IT__ep23_-_The_Design_of_PRC_National_Emblem_GM.mp3 "

    注意最后一个 " 前面多了一个空格符。这个似乎是笔误?

代码已经写好,放在 GitHUb 上面。项目名称返璞归真,就叫 itgonglun-crawler

程序的使用说明与上次的无明显区别。也可以参考 README.md

Leave a Reply

Your email address will not be published. Required fields are marked *