首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >:如何不使用urllib下载mp4?

:如何不使用urllib下载mp4?
EN

Stack Overflow用户
提问于 2022-02-26 00:40:33
回答 1查看 297关注 0票数 0

我试着下载这个视频:https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4

我试过以下几种方法,但不起作用。

代码语言:javascript
运行
复制
link = "https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4"
urllib.request.urlretrieve(link, 'video.mp4')

我得到了:

代码语言:javascript
运行
复制
urllib.error.HTTPError: HTTP Error 403: Forbidden

有其他方法可以不使用urllib下载mp4文件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-26 18:15:10

我没有问题要下载模块requests

代码语言:javascript
运行
复制
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`

它是小文件~10 in,但对于更大的文件,你可以下载成块。

代码语言:javascript
运行
复制
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)

文档显示流请求,但用于文本数据。

url是一个string,所以您可以使用string-functions在最后一个/之后获取元素。

代码语言:javascript
运行
复制
filename =  url.split('/')[-1]

或者您可以尝试使用os.path

至少它能在Linux上工作--也许是因为Linux也在本地路径上使用/

代码语言:javascript
运行
复制
import os

head, tail = os.path.split(url)

# head: 'https://www.learningcontainer.com/wp-content/uploads/2020/05'
# tail: 'sample-mp4-file.mp4'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71273131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档