首页 编程教程正文

借鉴网上教程,简单写了一个有声小说批量下载,菜鸟级别

piaodoo 编程教程 2020-02-22 22:16:39 1591 0 python教程

本文来源吾爱破解论坛

自己喜欢听有声小说,常用的网站只能一集一集下载,因此想到用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 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/8075.html

搜索