• 用Python下载momentum中的精美壁纸


    #! /usr/bin/python
    # encoding=utf-8
    
    """
    @desc 下载momentum中的精美壁纸
    @api https://d3cbihxaqsuq0s.cloudfront.net/
    @author Tan <tandamailzone@gmail.com>
    """
    
    import requests
    import re
    import os
    import urllib
    import xml.dom.minidom
    
    def download(url, path = ''):
        name    = url.split('/')[-1:-2:-1]
        path    = path if path else os.path.join('./tmp/', fname if fname else name)
        dirname = os.path.dirname(path)
        print path
        if not os.path.exists(dirname):
             os.makedirs(dirname)
        try:
            return urllib.urlretrieve(url, path)
        except Exception,e:
            print "Error:",e
            return False
    
    
    def parseXMLFile(name):
        DOM  = xml.dom.minidom.parse(name)
        List = DOM.documentElement
        if List.hasAttribute("xmlns"):
            print "ListBucketResult  : %s" % List.getAttribute("xmlns")
    
        results = []
        # 在集合中获取所有Contents
        contents = List.getElementsByTagName("Contents")
        # 打印每个content的详细信息
        for c in contents:
            print "*****Content*****"
            Key = c.getElementsByTagName('Key')[0]
            #print "Key: %s" % Key.childNodes[0].data
            LastModified = c.getElementsByTagName('LastModified')[0]
            #print "LastModified: %s" % LastModified.childNodes[0].data
            ETag = c.getElementsByTagName('ETag')[0]
            #print "ETag: %s" % ETag.childNodes[0].data
            Size = c.getElementsByTagName('Size')[0]
            #print "Size: %s" % Size.childNodes[0].data
            StorageClass = c.getElementsByTagName('StorageClass')[0]
            #print "StorageClass: %s" % StorageClass.childNodes[0].data
            item = {
                "key"  : Key.childNodes[0].data,
                "etag" : ETag.childNodes[0].data,
                "size" : Size.childNodes[0].data,
                "lastModified" : LastModified.childNodes[0].data,
                "storageClass" : StorageClass.childNodes[0].data
            }
            results.append(item)
        return results
    
    
    def main():
        tmp = './tmp/';
        #下载xml
        path = os.path.join(tmp, 'contents.xml')
        if not download('https://d3cbihxaqsuq0s.cloudfront.net/', path):
            return False
        #解析xml并下载图片
        contents = parseXMLFile(path)
        if len(contents):
            for item in contents:
                print item
                if not item['key'].find('.jpg'):
                    continue
                path = os.path.join(tmp, item['key'])
                download('https://d3cbihxaqsuq0s.cloudfront.net/' + item['key'], path)
        return True
    
    if __name__ == '__main__':
        main()
    
  • 相关阅读:
    洛谷 P1903 【模板】分块/带修改莫队(数颜色)
    BZOJ 2038: [2009国家集训队]小Z的袜子(hose)
    LibreOJ #6208. 树上询问
    LibreOJ #6002. 「网络流 24 题」最小路径覆盖
    hdu 3861 The King’s Problem
    洛谷 P2868 [USACO07DEC]观光奶牛Sightseeing Cows
    洛谷 P2905 [USACO08OPEN]农场危机Crisis on the Farm
    洛谷 U3348 A2-回文数
    洛谷 P1001 A+B Problem
    LibreOJ #2130. 「NOI2015」软件包管理器
  • 原文地址:https://www.cnblogs.com/one-villager/p/8340833.html
Copyright © 2020-2023  润新知