利用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 open()文件处理使用介绍
Nov 30 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
Apr 09 Python
Python实现树的先序、中序、后序排序算法示例
Jun 23 Python
Python 统计字数的思路详解
May 08 Python
python 多线程将大文件分开下载后在合并的实例
Nov 09 Python
python实现桌面壁纸切换功能
Jan 21 Python
在django中图片上传的格式校验及大小方法
Jul 28 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
Sep 11 Python
python实现快递价格查询系统
Mar 03 Python
python检查目录文件权限并修改目录文件权限的操作
Mar 11 Python
Python3批量创建Crowd用户并分配组
May 20 Python
Keras实现支持masking的Flatten层代码
Jun 16 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
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
js重写方法的简单实现
2016/07/10 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
vuejs 制作背景淡入淡出切换动画的实例
2018/09/01 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
利用Python开发实现简单的记事本
2016/11/15 Python
Django实现一对多表模型的跨表查询方法
2018/12/18 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
html5的canvas方法使用指南
2014/12/15 HTML / CSS
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
公司新员工的演讲稿注意事项
2014/01/01 职场文书
《日月潭》教学反思
2014/02/28 职场文书
青春无悔演讲稿
2014/05/08 职场文书
解除财产保全担保书
2014/05/20 职场文书
个人自荐材料
2014/05/23 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
2014年药店工作总结
2014/11/20 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
2016自主招生教师推荐信范文
2015/03/23 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS