本文来源吾爱破解论坛
自己喜欢听有声小说,常用的网站只能一集一集下载,因此想到用python写一个批量下载的程序,不过几乎没有用过python,所以以下的代码几乎是东拼西凑出来的,不过还是放出来和大家交流一下。[Python] 纯文本查看 复制代码
import urllib.request from urllib.request import urlretrieve from urllib.parse import quote import re import time def cbk(a, b, c): per = 100.0 * a * b / c if per > 100: per = 100 print('%.2f%%'%per) req = urllib.request.Request('http://www.ting89.com/books/14657.html') file = urllib.request.urlopen(req) data = file.read().decode('gbk') result = re.findall("""<a href='/down/\?[^-]+-\d+.html' target="_blank">([0-9]{3}_[^<]+)</a>""", data) base_url = 'http://mp3-2.ting89.com:9090/2017/34/抬棺匠/' for index in range(236, len(result)): down_url = base_url + result[index] + '.mp3' urlretrieve(quote(down_url,safe='/:?='), 'E:\python\%s.mp3'%(result[index]), cbk) print("%s 已下载完毕!"%(result[index]) + '.mp3') time.sleep(2)
可以看到,小说所在地址,和下载地址基址都是自己给出的,所以比较low
整个过程的主要难点有两个,一个是匹配章节名称时正则表达式的编写;还有一个就是urlretrieve是不支持中文url的,因此需要使用quote转换成ascii编码形式。最后的sleep是因为如果连续下载,远程服务器会强制中断连接,因此在下载之间加了延时。
另外第一次发帖,如果有什么犯规,希望及时指出
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。