我正在使用请求库(python 3.9)从URL获取文件名。[1]由于某些原因,文件名的编码不正确。 我应该得到“Ogłoszenie_0320.pdf”而不是“OgÅ\x82oszenie_0320.pdf”
我的代码如下所示:
import requests
import re
def getFilenameFromRequest(url : str, headers):
# Parses from header information
contentDisposition = headers.get('content-disposition')
if contentDisposition:
filename = re.findall('filename=(.+)', contentDisposition)
print("oooooooooo: " + contentDisposition + " : " + str(filename))
if len(filename) != 0:
return filename[0]
# Parses from url
parsedUrl = urlparse(url)
return os.path.basename(parsedUrl.path)
def getFilenameFromUrl(url : str):
request = requests.head(url)
headers = request.headers
return getFilenameFromRequest(url, headers)
getFilenameFromUrl('https://przedszkolekw.bip.gov.pl'+
'/fobjects/download/880287/ogloszenie-uzp-nr-613234-pdf.html')
知道怎么修吗? 我知道对于标准请求,我可以直接设置编码:
request.encoding = 'utf-8'
但是我该怎么处理这个案子呢
[1]https://przedszkolekw.bip.gov.pl/fobjects/download/880287/ogloszenie-uzp-nr-613234-pdf.html
仅应将基于ascii的latin-1中的字符用作头值 [rfc]。在这里,文件名已转义
要扭转这个过程,您可以这样做
(在评论中对话后更新)
相关问题 更多 >
编程相关推荐