爬虫的网页:http://www.listeningexpress.com/studioclassroom/ad/
需求:在指定网页上爬虫下载MP3文件
思路:
1、使用request库爬取网页的源码
1.1使用request.get(scr)获取网页的html源码
1.2 request.get(scr).text 转化成字符串
2、使用正则表达式分析MP3文本的地址
3、拼接字符串地址
4、调用第三方wget下载文件:os.system(f’{wget_scr} {fullAddr}’)
import requests,re,os
from urllib.parse import quote
wget_scr = r'D:\tools\wget'
target_scr = r'http://www.listeningexpress.com/studioclassroom/ad/'
# 1、使用request库获取 html网页
ret = requests.get(target_scr)
# 将request.get类转换成 字符串
content = ret.text
# 正则表达式获取MP3文件地址
p = re.compile(r"javascript:p\('(.*?)'")
# 返回的是一个列表
MP3_list = p.findall(content)
for scr in MP3_list:
# 字符串拼接
fullAddr = target_scr + quote(scr)
# 执行下载文件
os.system(f'{wget_scr} {fullAddr}')
MP3文件中有空格字符,组成下载网址时,需要进行url编码,否则空格会被当成命令行分隔符。参考代码如下所示
>>> from urllib.parse import quote
>>> quote('2019-04-13 NEWSworthy Clips.mp3')
'2019-04-13%20NEWSworthy%20Clips.mp3'