利用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之dict()的操作方法
Sep 24 Python
Python写的Tkinter程序屏幕居中方法
Mar 10 Python
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
Python爬虫中urllib库的进阶学习
Jan 05 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
Python用csv写入文件_消除空余行的方法
Jul 06 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
Apr 03 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 Python
用python对excel查重
Dec 07 Python
尝试使用Python爬取城市租房信息
Apr 12 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使用PDO操作MySQL数据库实例
2014/12/30 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
PHP数组Key强制类型转换实现原理解析
2020/09/01 PHP
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
学习python处理python编码问题
2011/03/13 Python
使用python实现省市三级菜单效果
2016/01/20 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
django静态文件加载的方法
2018/05/20 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
Python中安装easy_install的方法
2018/11/18 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
《兰亭集序》教学反思
2014/02/11 职场文书
入党积极分子自我鉴定范文
2014/03/25 职场文书
学风建设演讲稿
2014/09/12 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
2014年档案管理工作总结
2014/11/17 职场文书