批量下载文件(以xxx网站为例)
admin
2023-07-31 01:45:57
0
爸爸经常拿个收音机听评书,最近想帮爸爸在网上下个全集。打开百度搜了下评书,发现有个叫评书网的网站。搜了下单田芳说的《白眉大侠》。但是只能一回一次的单个点击下载,那不得点死。所以就想到了批量搞它。本文用的方法很简单(大神勿喷)。
发现规律,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全部搞下

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...