最近看了一些比较流氓,无节操,无下限的技术,比如接下来要介绍的urlretrieve(),用于下载视频、音频文件;还有在知乎上被称为黑科技的you-get等等。无节操的下载版权的文件,不过各个网站的反爬虫技术也在不断的更新,反url下载的花样也越来越多。
在《大鱼海棠》电影中,陈奕迅唱了一首歌是在”这个世界相遇”,在各大音乐平台下载都是付费的,于是就可以。。。
代码量比较少,以火狐浏览器为例,先打开网页版qq音乐,搜索并试听,在听歌的界面,按F12或者是右键->查看元素,点击网络->媒体,点击GET
复制url。
保留url,一会会用到
写代码了:
from urllib import request
url = "http://dl.stream.qqmusic.qq.com/C4000028xsVd0ijETa.m4a?vkey=F4223904D24F32CA4BF098DF6AA0889BC7AD8A6D140D6F412A8B4D683184BA86870E8942F5B184AECAF38A4653C5C0927A7F9766E4B1ACC2&guid=9291790292&uin=934382194&fromtag=66"
path = 'F://music//在这个世界相遇.mp4'
request.urlretrieve(url, path)
print('下载完成')
完成。
介绍一下urlretrieve(),导包request
urlretrieve()方法直接将远程数据下载到本地
request.urlretrieve(url, filename=None, reporthook=None, data=None),四个参数,url是抓到包的url;filename是要保存的地址;reporthook是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度;参数data指post导服务器的数据,该方法返回一个包含两个元素的(filename, headers) 元组,filename 表示保存到本地的路径,header表示服务器的响应头
其实不止是可以下音频,也可以通过同样的方法下载视频。
但是,像爱奇艺这样的网站,一个电影分成了几百个.ts视频文件,好吧,问题来了,手动复制???
不了,还是好好学吧