python下载文件响应header里的'Content-Disposition'的filename为乱码
孜孜求良师 2018-05-07 12:09:53 用python3.6.5的requests库请求一个下载文件,下载后文件名含中文,在谷歌上下,文件名是正常的,响应头里filename也是中文,可是用python,响应头的filename是乱码,求解,以下是源码:
# -*- coding: utf-8 -*-
import requests
url='http://gokifu.com/f/2u4y-围棋gokifu棋谱-20180425-江维杰九段-孙腾宇七段.sgf'
#定义请求头
headers=\
{
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Cookie': 'sc_is_visitor_unique=rx5659732.1525391933.AC91E1FBEDE74F582788C5C99288C700.11.10.9.8.6.2.2.2.1',
'Referer': 'http://gokifu.com/',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'
}
response = requests.get(url,timeout=1000,headers=headers)
content=response.content.decode(encoding='utf-8')# 获取响应报文
print(content)
responseHeaders=response.headers#获取响应头
print(headers)
a = responseHeaders.get('Content-Disposition')
fileName = a[a.find('=') + 1:]#获取filename的值
print(fileName)
filename = fileName.encode().decode('utf-8')#获取响应头的解码内容
print(filename)