利用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转换HTML到Text纯文本的方法
Jan 15 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
python中使用psutil查看内存占用的情况
Jun 11 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
python实现统计文本中单词出现的频率详解
May 20 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
Feb 11 Python
Python @property及getter setter原理详解
Mar 31 Python
opencv 图像礼帽和图像黑帽的实现
Jul 07 Python
基于Python爬取素材网站音频文件
Oct 21 Python
python 实现简单的计算器(gui界面)
Nov 11 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函数
2008/10/03 PHP
十幅图告诉你什么是PHP引用
2015/02/22 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
2016/09/23 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
JS图片根据鼠标滚动延时加载的实例代码
2013/07/13 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
Angular实现预加载延迟模块的示例
2017/10/12 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
简介Django中内置的一些中间件
2015/07/24 Python
python分布式环境下的限流器的示例
2017/10/26 Python
Python代码实现KNN算法
2017/12/20 Python
Django 外键的使用方法详解
2019/07/19 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
python 19个值得学习的编程技巧
2020/08/15 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
css3media响应式布局实例
2016/07/08 HTML / CSS
DC Shoes澳大利亚官方网上商店:购买DC鞋子
2019/10/25 全球购物
哈弗商学院毕业生求职信
2014/02/26 职场文书
cf搞笑广告词
2014/03/14 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
springboot+VUE实现登录注册
2021/05/27 Vue.js
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python