首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下载没有文件名直接链接的文件(Python 3.4.1 Win8

下载没有文件名直接链接的文件(Python 3.4.1 Win8
EN

Stack Overflow用户
提问于 2014-08-21 23:27:09
回答 1查看 389关注 0票数 1

我写了以下简单的代码(在stackoverflow的帮助下,谢谢!)要从url链接下载文件,请执行以下操作:

代码语言:javascript
复制
import requests
url = "http://www.url.com/file.pdf"
response = requests.get(url)
output = open('file.pdf', 'wb')
output.write(response.content)

只要我在url中有一个文件名,代码就能正常工作。然而,一些链接直接打开一个不包含文件名的url的pdf。请求有办法处理这个问题吗?

一些附加信息:有问题的url包含字符串".cfm?“我发现它指的是冷融合标记语言。我希望这能帮助别人为我找到一个解决方案。

EN

回答 1

Stack Overflow用户

发布于 2014-08-21 23:42:59

当浏览器得到一个文件的响应时,它将查找文件名作为URL的一部分,但是如果有一个带有filename参数的Content-Disposition header (最初是MIME头,但也在HTTP中使用),那么文件名就是从中获取的。

requests不会给你任何具体的帮助,而是你自己去做:

代码语言:javascript
复制
import cgi
from urllib.parse import urlsplit

def filename_from_response(response):
    cdisp = response.headers.get('content-disposition')
    if cdisp:
        _, params = cgi.parse_header(cdisp)
        if 'filename' in params:
            return filename
    last_part = urlsplit(response.url).path.rpartition('/')[-1]
    return last_part
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25430219

复制
相关文章

相似问题

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