Python 网络教程大全之 05 如何获取url下载文件的大小?
程序员文章站
2022-03-02 12:45:37
...
实战需求
如何获取url下载文件名称?
解决方案
为了URL 中提取文件名,我们可以编写一个段程序来获取反斜杠 (/) 之后的最后一个字符串。
import requests
url = 'https://ai2opencode.com/favicon.ico'
if url.find('/'):
print url.rsplit('/', 1)[1]
这将在某些情况下正确给出文件名。但是,有时 url 中不存在文件名信息。例如,类似http://ai2opencode.com. 在这种情况下,Content-Disposition标题将包含文件名信息。这是获取它的方法。
import requests
import re
def get_filename_from_cd(cd):
"""
Get filename from content-disposition
"""
if not cd:
return None
fname = re.findall('filename=(.+)', cd)
if len(fname) == 0:
return None
return fname[0]
url = 'https://ai2opencode.com/favicon.ico'
r = requests.get(url, allow_redirects=True)
filename = get_filename_from_cd(r.headers.get('content-disposition'))
open(filename, 'wb').write(r.content)