python爬虫下载文件,Content-Disposition中的文件名乱码问题

  • 问题描述:

下载链接的响应头如下,可以看到filename是乱码,但是用浏览器下载可以显示正常的文件名。

  • 原因:

按照RFC规范,HTTP头文件中的字符编码被指定为 ISO-8859-1,中文文件名被用 ISO-8859-1解码后出现乱码也毫不出奇了。

  • 解决方法:

把乱码文件名重新用ISO-8859-1编码后,再解码即可(默认用uft-8)。

示例代码:

import requests
import rer = requests.get(url)  # url为下载文件的Request URL
Content_Disposition = r.headers['Content-Disposition']
compiler = re.compile(r'filename=(.*)')
filename = compiler.search(Content_Disposition).group(1)  # 正则提取文件名
filename = filename.encode('ISO-8859-1').decode()   
print(filename)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部