unpkg.com下载(pyhton)脚本分享

简介: 代码import requests,re,os,time,shutilurl="https://unpkg.com/"mod="react"version="" headers={ 'Accept-Language': 'zh-CN,zh;q=0.

代码

import requests,re,os,time,shutil

url="https://unpkg.com/"
mod="react"
version="" 
headers={ 'Accept-Language': 'zh-CN,zh;q=0.8',
            'Content-Type': 'text/html;Charset=utf-8',
            "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
            }
#获取HTML
def getHTML(url,encoding='utf-8'): 
    rd = requests.get(url, params=None, headers=headers)
    rd.encoding = encoding
    return rd.text

#获取版本
def getVsions(m): 
    h=getHTML(url+m+'/') 
    j=re.findall(r'<select id="version"(.*?)</select>', h,re.S)[0] 
    patt = re.compile(r'<option.+?>(.+?)</option>')
    option = patt.findall(j)
    return option

#扫描目录
def getPaths(v,p='/',files=[],folders=[]): 
    h=getHTML(url+v+p) 
    t=re.findall(r'<table(.*?)</table>', h,re.S)[0] 
    href = re.findall('href="(.*?)"',t)
    for name in href: 
        path=p+name
        #if name in ['../','LICENSE'] or not 'iconfont' in path:#material-design-icons
        if name in ['../','LICENSE'] or path in ['/src/','/packages/','/types/','/dist/docs/','/docs/','/samples/',"/test/","/locale/"] :#跳过
            continue
        print(path)
        if name[-1]=='/':
            folders.append(path)
            getPaths(v,path,files,folders)
        else:
            files.append(path)
    return {"files":files,"folders":folders}

#创建目录
def makeDirs(dirs,p):
    if p==None:
        p='./' 
    for  i in dirs:
        path=p+i
        if not os.path.exists(path):
            print("创建目录",path)
            os.makedirs(path)
            
#下载文件
def download(url,path=None):#dir=保存文件夹路径
    if not os.path.exists(path):
        print("下载:",url)
        r=requests.get(url)
        t=str(time.time())+'.'+str(pid)+'.tmp'
        open(t, 'wb').write(r.content) 
        shutil.move(t, path) 
    else:
        print("文件已存在")

pid=os.getpid() 
print(url+mod+'/')
versions=getVsions(mod)
print("所有版本:",versions)
version=mod+'@'+versions[-1]
print("默认版本:",version)
paths=getPaths(version) 
makeDirs(paths["folders"],version)
for i in paths["files"]:
    u=url+version+i
    download(u,version+'/'+i)
print("完成")

效果

img_eab7b74df7aced01f2ccf1d74e1be3b9.gif
vue.gif

img_71e12ddbf654fc055188b4fce9fe377f.gif
vue.gif

img_c8007e0d81c41a22e8b9b89c5c3dc030.gif
element-ui.gif

img_14bf752a61bbbf867035b181f88171fd.gif
element-ui.gif
相关文章
|
4月前
|
Linux iOS开发 MacOS
Windows系统下安装Python的步骤
Windows系统下安装Python的步骤
36 0
|
Linux Python 开发工具
Linux编译安装python2.7.5的步骤
Linux编译安装python2.7.5的步骤 发布时间:2014-03-27 来源:服务器之家 1. 下载python2.7.5,保存到 /data/qtongmon/software http://www.
2015 0
|
15天前
|
Linux iOS开发 MacOS
pyinstaller---Python代码的打包神器,一键将python代码打包成exe可执行文件
pyinstaller---Python代码的打包神器,一键将python代码打包成exe可执行文件
|
5月前
|
Python
【python实操】安装软件时候选择文件安装目录模块的实现方法
【python实操】安装软件时候选择文件安装目录模块的实现方法
34 0
|
11月前
|
区块链 Python
Python程序打包exe文件实战
Python程序打包exe文件实战
94 0
|
11月前
|
JSON 数据格式 Python
用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)(三)
用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)(三)
192 0
|
11月前
|
IDE 开发工具 Python
用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)(二)
用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)(二)
474 0
|
11月前
|
C++ Python Windows
用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)(一)
用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)(一)
244 0