批量下载文件(以xxx网站为例)

本文介绍如何使用Python脚本批量下载评书网站上的全集资源,通过解析网页代码获取下载链接,并利用weget工具进行下载。文章详细说明了技术实现过程及遇到的问题解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

爸爸经常拿个收音机听评书,最近想帮爸爸在网上下个全集。打开百度搜了下评书,发现有个叫评书网的网站。搜了下单田芳说的《白眉大侠》。但是只能一回一次的单个点击下载,那不得点死。所以就想到了批量搞它。本文用的方法很简单(大神勿喷)。
发现规律,http://www.5ips.net/down_120_001.htm这个是第一回的下载地址,用浏览器打开显示网页源码发现下载地址就在里边那就好办了。url[2]= "/pingshu/单田芳_白眉大侠/单田芳_白眉大侠_001.mp3?key=8de4ff27ca1e24e711d0772ebe13b454_511093084"这个是他后台临时生成的下载地址,过几分钟就会失效。规律得到了,url地址是_001表示第一回,文件地址为_001.mp3, 如果是_002就表示第二回,文件地址为_002.mp3。以此类推
好吧直接搞起。用urllib2直接拿到网页
psurl0 = 'http://www.5ips.net/down_120_'
psurl0_0 = '.htm'
psurl1 = 'http://p33d.5ips.net/pingshu/单田芳_白眉大侠/单田芳_白眉大侠_'
def main(index):
    ji = "";
    if index < 10:
        ji = "00%d" %index;
    elif index < 100:
        ji = "0%d" %index;
    else:
        ji = "%d" %index
    
    url_p = psurl0 + ji + psurl0_0
    reque = urllib2.Request(url_p, headers = headers)
    content = urllib2.urlopen(reque).read()
    reg = '.mp3\?key=.*"'
    reslut = re.search(reg, content).group()
    reslut = reslut.replace('"', '')
    newpath = psurl1 + ji + reslut
    #down(newpath, ji + '.mp3')

psurl0,psurl0_0,psurl1都是固定的,变得只是下载的章数和动态生成的地址码。由于下载地址直接显示到网页源码中了,所以不需要复杂的解析,直接用正则找到下载地址reslut

拿到下载地址了直接用urllib2.urlopen下载失败了,但是把地址帖到浏览器可以播放,应该被网站禁止了。好吧,尝试其他办法。打开命令行用weget下载成功。问题解决了。weget是linux系统自带的下载工具,Mac和windows都需要自己安装。
def down(url, file_name):
    option = 'wget -O ./白眉大侠/%s %s' %(file_name, url)
    pop = subprocess.Popen(target, stdin = subprocess.PIPE, stdout = subprocess.PIPE)
    pop.communicate(mess)

一个循环把320回的MP3全部搞下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值