利用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 的内置字符串方法小结
Mar 15 Python
Python for循环中的陷阱详解
Jul 13 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
PyCharm配置mongo插件的方法
Nov 30 Python
Python collections模块使用方法详解
Aug 28 Python
阿里云ECS服务器部署django的方法
Aug 29 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
简单了解python shutil模块原理及使用方法
Apr 28 Python
PyTorch中的拷贝与就地操作详解
Dec 09 Python
python+selenium爬取微博热搜存入Mysql的实现方法
Jan 27 Python
python实现一个简单的贪吃蛇游戏附代码
Jun 28 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
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
第七章 php自定义函数实现代码
2011/12/30 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
Laravel框架实现的记录SQL日志功能示例
2018/06/19 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
Flutter实现仿微信底部菜单栏功能
2019/09/18 Javascript
python中mechanize库的简单使用示例
2014/01/10 Python
python实现同时给多个变量赋值的方法
2015/04/30 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
2017/06/15 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
python 简单的调用有道翻译
2020/11/25 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
一句话工作感言
2014/03/01 职场文书
纠纷协议书
2014/04/16 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
Django+Celery实现定时任务的示例
2021/06/23 Python