How to check the url is either web page link or file link in python

前端 未结 2 1155
轻奢々
轻奢々 2021-01-06 09:57

Suppose i have links as follows:

    http://example.com/index.html
    http://example.com/stack.zip
    http://example.com/setup.exe
    http://example.com/n         


        
2条回答
  •  广开言路
    2021-01-06 10:23

    import urllib
    import mimetypes
    
    
    def guess_type_of(link, strict=True):
        link_type, _ = mimetypes.guess_type(link)
        if link_type is None and strict:
            u = urllib.urlopen(link)
            link_type = u.headers.gettype() # or using: u.info().gettype()
        return link_type
    

    Demo:

    links = ['http://stackoverflow.com/q/21515098/538284', # It's a html page
             'http://upload.wikimedia.org/wikipedia/meta/6/6d/Wikipedia_wordmark_1x.png', # It's a png file
             'http://commons.wikimedia.org/wiki/File:Typing_example.ogv', # It's a html page
             'http://upload.wikimedia.org/wikipedia/commons/e/e6/Typing_example.ogv'   # It's an ogv file
    ]
    
    for link in links:
        print(guess_type_of(link))
    

    Output:

    text/html
    image/x-png
    text/html
    application/ogg
    

提交回复
热议问题