EASY PYTHON SELENIUM:如何在不使用 urllib 的情况下下载 mp4?
EASY PYTHON SELENIUM: How do I download an mp4 WITHOUT using urllib?
我正在尝试下载此视频:https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4
我尝试了以下但它不起作用。
link = "https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4"
urllib.request.urlretrieve(link, 'video.mp4')
我得到:
urllib.error.HTTPError: HTTP Error 403: Forbidden
是否有另一种不使用 urllib 下载 mp4 文件的方法?
我用模块requests
下载没有问题
import requests
url = 'https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4'
response = requests.get(url)
with open('video.mp4', 'wb') as f: # use `"b"` to open in `bytes mode`
f.write(response.content) # use `.content` to get `bytes`
这是一个小文件~10MB,但对于更大的文件,您可以分块下载。
import requests
url = 'https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4'
response = requests.get(url, stream=True)
with open('video.mp4', 'wb') as f:
for chunk in response.iter_content(10000): # 10_000 bytes
if chunk:
#print('.', end='') # every dot will mean 10_000 bytes
f.write(chunk)
文档显示 Streaming Requests 但对于文本数据。
url
是一个 string
,因此您可以使用 string
函数在最后一个 /
之后获取元素
filename = url.split('/')[-1]
或者您可以尝试使用 os.path
至少它适用于 Linux - 可能是因为 Linux 也在本地路径中使用 /
。
import os
head, tail = os.path.split(url)
# head: 'https://www.learningcontainer.com/wp-content/uploads/2020/05'
# tail: 'sample-mp4-file.mp4'
我正在尝试下载此视频:https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4
我尝试了以下但它不起作用。
link = "https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4"
urllib.request.urlretrieve(link, 'video.mp4')
我得到:
urllib.error.HTTPError: HTTP Error 403: Forbidden
是否有另一种不使用 urllib 下载 mp4 文件的方法?
我用模块requests
下载没有问题
import requests
url = 'https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4'
response = requests.get(url)
with open('video.mp4', 'wb') as f: # use `"b"` to open in `bytes mode`
f.write(response.content) # use `.content` to get `bytes`
这是一个小文件~10MB,但对于更大的文件,您可以分块下载。
import requests
url = 'https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4'
response = requests.get(url, stream=True)
with open('video.mp4', 'wb') as f:
for chunk in response.iter_content(10000): # 10_000 bytes
if chunk:
#print('.', end='') # every dot will mean 10_000 bytes
f.write(chunk)
文档显示 Streaming Requests 但对于文本数据。
url
是一个 string
,因此您可以使用 string
函数在最后一个 /
filename = url.split('/')[-1]
或者您可以尝试使用 os.path
至少它适用于 Linux - 可能是因为 Linux 也在本地路径中使用 /
。
import os
head, tail = os.path.split(url)
# head: 'https://www.learningcontainer.com/wp-content/uploads/2020/05'
# tail: 'sample-mp4-file.mp4'