利用python写个下载teahour音频的小脚本


Posted in Python onMay 08, 2017

前言

最近空闲的时候看到了之前就关注的一个小站http://teahour.fm/,一直想把这里的音频都听一遍,可转眼间怎么着也有两年了,却什么也没做。有些伤感,于是就写了个脚本,抓了下音频的下载链接,等下载下来后一定要认真听听。

时间仓促,加调试也就那么十几分钟,脚本写的可能有些烂,大家可以留言指出。

teahour.py

#!/usr/bin/env python
 #coding: utf-8
 
 import sys
 import requests
 from BeautifulSoup import BeautifulSoup
 
 reload(sys)
 sys.setdefaultencoding( "utf-8" )
 
 def parse_index():
  l = []
  r = requests.get("http://teahour.fm/")
  text = r.text
  html = BeautifulSoup(text)
  a = html.findAll("ul")[-3].findAll("a")
  for item in a:
   url = "".join(["http://teahour.fm",item.attrs[0][1]])
   title = item.text
   title = title.strip("#")
   l.append((title,url))
  return l
 
 def write(lines):
  with open("teahour.sh","a") as fh:
   fh.writelines(lines)
 
 def parse_sub(t):
  title,url = t
  r = requests.get(url)
  text = r.text
  html = BeautifulSoup(text)
  audio_url = html.find("audio").attrs[-1][-1]
  ext = audio_url.split(".")[-1]
  line = "wget '%s' -SO '%s.%s'\n" % (audio_url,title,ext)
  #print line
  return line
 
 def main():
  lines = []
  l = parse_index()
  for t in l:
   line = parse_sub(t)
   lines.append(line)
  write(lines)
 
 if __name__ == "__main__":
  main()

文本teahour.sh的部分内容如下:

peiqiang@budongdeMacBook-Pro:~/Downloads/teahour$ cat teahour.sh
wget 'http://screencasts.b0.upaiyun.com/podcasts/teahour_episode_89.m4a' -SO '89 和玎玎聊聊如何搭建精益创业团队.m4a'
wget 'http://screencasts.b0.upaiyun.com/podcasts/teahour_episode_88.m4a' -SO '88 与墨刀创始人张元一聊创业从 0 到 1.m4a'
wget 'http://screencasts.b0.upaiyun.com/podcasts/teahour_episode_87.m4a' -SO '87 和互联网老兵高春辉聊 IPIP.net.m4a'
wget 'http://screencasts.b0.upaiyun.com/podcasts/teahour_episode_86.mp3' -SO '86 和『掘金』创始人阴明聊聊创业和技术.mp3'
wget 'http://screencasts.b0.upaiyun.com/podcasts/teahour_episode_85.mp3' -SO '85 这次我们聊聊远程工作.mp3'

执行脚本sh teahour.sh下载的部分内容如下:

peiqiang@budongdeMacBook-Pro:~/Downloads/teahour$ ll
total 1077896
-rw-r--r-- 1 peiqiang staff 130416640 3 16 20:02 83 这次我们聊聊超酷的Ethereum.m4a
-rw-r--r-- 1 peiqiang staff 109631418 3 3 2016 84 继续跟 Robbin 聊聊技术人的战略与战术.m4a
-rw-r--r-- 1 peiqiang staff 89519924 6 12 2016 85 这次我们聊聊远程工作.mp3
-rw-r--r-- 1 peiqiang staff 87766246 8 8 2016 86 和『掘金』创始人阴明聊聊创业和技术.mp3
-rw-r--r-- 1 peiqiang staff 59058564 9 11 2016 87 和互联网老兵高春辉聊 IPIP.net.m4a
-rw-r--r-- 1 peiqiang staff 32408522 10 26 15:55 88 与墨刀创始人张元一聊创业从 0 到 1.m4a
-rw-r--r-- 1 peiqiang staff 43051575 11 8 18:49 89 和玎玎聊聊如何搭建精益创业团队.m4a
-rwxr-xr-x@ 1 peiqiang staff  1055 3 16 20:02 teahour.py
-rw-r--r-- 1 peiqiang staff  11465 3 16 19:57 teahour.sh

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python写的创建文件夹自定义函数mkdir()
Aug 25 Python
python用Pygal如何生成漂亮的SVG图像详解
Feb 10 Python
python实现单线程多任务非阻塞TCP服务端
Jun 13 Python
Django自定义用户认证示例详解
Mar 14 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
python实现海螺图片的方法示例
May 12 Python
python pygame实现方向键控制小球
May 17 Python
Python基本语法之运算符功能与用法详解
Oct 22 Python
wxPython+Matplotlib绘制折线图表
Nov 19 Python
Python如何使用ElementTree解析xml
Oct 12 Python
python 解决Windows平台上路径有空格的问题
Nov 10 Python
通过源码分析Python中的切片赋值
May 08 #Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
May 08 #Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 #Python
Python实现SSH远程登陆,并执行命令的方法(分享)
May 08 #Python
利用Celery实现Django博客PV统计功能详解
May 08 #Python
浅谈Python生成器generator之next和send的运行流程(详解)
May 08 #Python
python生成式的send()方法(详解)
May 08 #Python
You might like
关于php mvc开发模式的感想
2011/06/28 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
2019/01/18 Javascript
vue基于viewer实现的图片查看器功能
2019/04/12 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
Python标准异常和异常处理详解
2015/02/02 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
常用的HTML5列表标签
2017/06/20 HTML / CSS
水产养殖学应届生求职信
2013/09/29 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
党员公开承诺书
2014/03/25 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
禁毒主题班会教案
2015/08/14 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技