欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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)