Python练习:正则表达式

题目1

点击这里,打开网址

这个网址包含了优质的英语学习音频文件。

这些音频文件 在网页的html文件内容都是以mp3结尾的,如下图所示:

image


要求大家写程序:

wget http://www.listeningexpress.com/studioclassroom/ad/

Windows上的wget可以点击这里 下载。 这个程序不用安装,直接在命令行里使用即可

注意:

>>> from urllib.parse import quote
>>> quote('2019-04-13 NEWSworthy Clips.mp3')
'2019-04-13%20NEWSworthy%20Clips.mp3'

答案视频讲解-1


请大家点击此处链接,观看讲解视频

答案视频讲解-2


请大家点击此处链接,观看讲解视频


补充练习

VIP实战班学员请联系老师获取补充练习

题目1-答案

import re,os

pageUrl = 'http://www.listeningexpress.com/studioclassroom/ad/'
WGET_EXE = r"d:\tools\wget.exe"

# 下载网页文件
os.system(f'{WGET_EXE} {pageUrl}')

# 读取网页内容
with open('index.html',encoding='utf8') as f:
    content = f.read()

p = re.compile(r"javascript:p\('(.*?\.mp3)'\)")
mp3links = p.findall(content)

print('获取到如下mp3文件:')
for link in mp3links:
    print(link)



for link in mp3links:
    fullAddr = pageUrl + link 
    print(f'\n\n下载{fullAddr}')
    
    # 不用quote了,因为地址中如果有中文会有问题,直接双引号包起来即可
    os.system(f'{WGET_EXE} "{fullAddr}"')
    print(f'ok')
    break