版权声明:莫者 https://blog.csdn.net/weixin_40709439/article/details/82392499
今天看了一个小视频,很好笑
说的是:欲练神功,挥刀自宫,如不自宫,也能成功
观看链接:
不过不是下载链接,我准备找到它的下载链接,然后利用python 的requests下载。或者urllib库也是可以下载的
先随便找个视频下载链接,测试下脚本
http://newoss.maiziedu.com/yxyh4/pand-02.mp4
脚本如下:
# encoding=utf8
import requests
import sys
reload(sys)
sys.setdefaultencoding('utf8')#改变默认的编码为utf-8
print('start...')
url = 'http://newoss.maiziedu.com/yxyh4/pand-02.mp4'
r = requests.get(url,stream=True) #stream 参数控制下载文件过大。当stream=True时不会立即下载文件,先利用下面的iter_content()函数控制下载文件大小范围
# print(r.text)
with open('zigong.mp4','wb') as f:
for chunk in r.iter_content(chunk_size=1024*1024):#此函数一块一块的遍历,文件不能超过1KM。
# iter_content:一块一块的遍历要下载的内容
# iter_lines:一行一行的遍历要下载的内容
if chunk:
f.write(chunk)
print('over')
测试过程中遇到的问题
第一编码问题:UnicodeEncodeError: 'ascii' codec can't encode character u'\uf
这是因为:python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错,python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式。
在文件头添加下面代码块即可
# encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
第二文件大小控制问题:如果下载的视频过大,会容易使电脑卡顿,感觉十分不好
所以我使用了,参数stream=True,默认为false
当为true是,脚本不会立即下载链接的视频,而是先便利其字节,计算总大小
再结合以下函数设置下载的最大值,我这里是1024*1024=1KM(默认b)
iter_content:一块一块的遍历要下载的内容
iter_lines:一行一行的遍历要下载的内容
如果视频不大于1m就进行下载
脚本测试成功,就差“欲练神功,挥刀自宫,如不自宫,也能成功”下载链接了,暂时还没找到,找到再补上