在家无聊,想看看小说,不过看的眼睛痛,就想着下个有声小说来听听。但风上找到的都是要一集一集下,还得重命名,122集啊,点到什么时候。

写个批处理下载的脚本。记录下过程。

一、老套路了,找到下载URL。通过查看网页源码,发现主页:http://www.qktsw.com/down/1831.html  的下载列表隐藏在:

打开这个js文件,看看是什么东西:

看标红的东西,觉得眼熟,这不就是主页上面的下载列表的ID号么:

二、获取id号:

简单,正则表达式:

m=re.compile(r'\$(.*?)\$')

result=m.findall(content)

i=0
for s in result:

  print s

result就是匹配的所有id列表了

接下来,写进文件就可以了:

fp = open(file, 'wb')
req = urllib2.urlopen(url)
for line in req:
fp.write(line)
fp.close()
所有代码如下:
#coding=utf-8
__author__ = 'Administrator' import urllib2
import re content = urllib2.urlopen('http://www.qktsw.com/playdata/39/1831.js').read() m=re.compile(r'\$(.*?)\$') result=m.findall(content)
i=0
rawStr='http://www.qktsw.com/downbook.asp?id='
for s in result:
print s
i+=1
fp = open(str(i)+'.f4v', 'wb')
req = urllib2.urlopen(rawStr+s)
for line in req:
fp.write(line)
fp.close()
print '第%d集下完',i
下载下来的:

打开后可以正常听!嘿嘿,搞定

最新文章

  1. C#编写windows服务,多服务为什么只启动一个(ServiceBase.Run)
  2. linux centos yum安装LAMP环境
  3. 从走出校门到Java实习生生活
  4. django admin 扩展
  5. java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)
  6. 安装 chardet ,出现ImportError: No module named setuptools
  7. web/jdbc数据库带实例名连接2008
  8. 使用Class.getResource和ClassLoader.getResource方法获取文件路径
  9. Java基础知识强化39:StringBuffer类之StringBuffer的删除功能
  10. 洛谷-拼数-NOIP1998提高组复赛
  11. (17)IO中的异常处理
  12. 201521123110 java课程设计
  13. Linux下RabbitMQ的安装 开机自启动
  14. Go基础系列:struct的导出和暴露问题
  15. CodeForces - 893C Rumor【并查集】
  16. UGUI动态绑定事件
  17. 深入理解ASP.NET MVC(5)
  18. UI 性能因素考虑
  19. 数据库操作相关(sql语句-php)
  20. 2018Java开发面经(持续更新)

热门文章

  1. 创立一个网站的前前后后(起因,域名,云平台,备案,CDN等等)(1)
  2. 练习:使用nmcli 配置网络连接
  3. ViewHolder的改进写法
  4. mysql的DISABLE/ENABLE KEYS
  5. 第2月第5天 arc invocation getReturnValue
  6. inux中fork()函数详解(原创!!实例讲解)
  7. 字符串匹配:KMP算法
  8. npm start 作用
  9. Form 详细属性--2016年12月4日
  10. ecshop二次开发 给商品添加自定义字段【包含我自己进一步的开发实例详解】