我已经搜索并找到了很多答案,不幸的是,所有答案都与Python2有关,看起来像这样:
r = urllib.urlopen(url)
headers = r.info()
print(headers.getheader('Content-Disposition'))
但是,这似乎不适用于Python3。没有.getheader()
方法。所有标头数据都在r.info()._headers
内部作为元组列表。下划线可能暗示不要直接访问它,或者有一种更“正确”的读取标头的方式...如果是这样,读取标头的正确方法是什么?
答案 0 :(得分:1)
如果 url 使用 http 或 https 方案 r 是 http.client.HTTPResponse类型。您可以通过以下方式获取标题:
import urllib.request
r = urllib.request.urlopen(url)
print(r.getheaders())
print(r.getheader('Content-Disposition'))
您可以使用print(dir(r))
列出r的属性。
答案 1 :(得分:0)
r.info()
返回使用email.message.Message
类实现的HTTPMessage
对象。从文档中看来,headers.get('Content-Disposition')
是您想要的方法。