首页 > 编程语言 >python 下载element源码

python 下载element源码

时间:2023-07-08 14:11:23浏览次数:59  
标签:python element url 源码 ui href save dir

#encoding:utf-8
from bs4 import BeautifulSoup
import requests,re,os,socket
from urllib import request
#指定要下载的版本
element_ui_version = "2.15.13"
#指定文件要存放的位置
element_ui_dir = "D:/tmp"


save_ui_dir = os.path.join(element_ui_dir,"element-ui")

if not os.path.isdir(save_ui_dir):
    os.makedirs(save_ui_dir)

element_ui_url = "https://unpkg.com/browse/element-ui@" + element_ui_version + "/"
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0"
}
def get_page(url,save_dir):
    print("Current Page:    ",url)
    response = requests.get(url,headers=headers)
    soup = BeautifulSoup(str(response.content), "lxml")
    tbody = soup.find("tbody")
    rule_name = r'href="(.+?)"'
    td_href = re.findall(rule_name,str(tbody))
    dir_list = []
    for href in td_href:
        href_path = os.path.join(save_dir, href)
        if href == "../":
            pass
        elif "/" in href:

            os.mkdir(href_path)
            print("Makedir:    ",href_path.replace(save_ui_dir,""))
            dir_list.append(href)
        else:
            file_url = url + href
            abs_name = file_url.replace(element_ui_url, "")
            print("Download:    ", abs_name)
            get_file(file_url,href_path)


    for sub_dir in dir_list:
        sub_url = url + sub_dir
        sub_dir = os.path.join(save_dir,sub_dir)
        get_page(sub_url,sub_dir)
def get_file(url,filename):
    opener =request.build_opener()
    opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0')]
    request.install_opener(opener)
    socket.setdefaulttimeout(30)
    url = url.replace("browse/","")
    count = 1
    while count <= 5:
        try:
            request.urlretrieve(url, filename)
            break
        except socket.timeout:
            err_info = '<Timeout>   Reloading for %d time' % count
            print(err_info)
            count += 1
        except Exception as e:
            err_info = '<'+str(e)+'>   Reloading for %d time' % count
            print(err_info)
            count += 1
    if count > 5:
        print("<Error>  download job failed!")
    else:
        pass

get_page(element_ui_url,save_ui_dir)

标签:python,element,url,源码,ui,href,save,dir
From: https://www.cnblogs.com/7c89/p/17537159.html

相关文章

  • 如何实现MAC Python加入环境变量的具体操作步骤
    如何在Mac上将Python加入环境变量作为一名经验丰富的开发者,我将帮助你学习如何在Mac上将Python加入环境变量。这将使你能够在终端中直接运行Python命令,而无需指定完整的Python安装路径。整体流程下面是添加Python到环境变量的步骤:步骤内容步骤一打开终......
  • Python | 获取文件中的行数
    在Python中,获取文件中的行数可以帮助我们更好地处理和分析数据。Python提供了一种简单的方法来获取文件中的行数,下面将介绍两种常用的方法。方法一:使用循环和计数器我们可以使用一个循环来读取文件中的每一行,然后使用计数器来计算行数。下面是示例代码:#打开文件withopen(......
  • 解决火星坐标系转成WGS-84坐标Python的具体操作步骤
    火星坐标系转换为WGS-84坐标系作为一名经验丰富的开发者,我很高兴能帮助你学习如何将火星坐标系(GCJ-02)转换为WGS-84坐标系的方法。火星坐标系是中国特有的一种坐标系,而WGS-84坐标系是全球通用的坐标系。整体流程下面是整个转换过程的步骤:步骤描述1获取火星坐标系的经......
  • python基础列表专题
    用[]可以创建列表列表可以包含各种类型且可嵌套通过切片和索引访问列表元素添加元素删除元素列表不适合频繁插入,因为每插入一个,元素都会后移动深度拷贝列表是可以改变的不可哈希的,所以不可以做字典的键 ......
  • python - input()函数
    1.示例message=input("tellmesomething,andIwillrepeatitbacktoyou:")print(message)1.1提示-promptprompt="Ifyoutelluswhoyouare,wecanpersonalizethemessagesyousee."prompt+="\nWhatisyourfirstname?......
  • python:create folder
     #创建文件方法defmkdirFile(folder:str,writestring:str):"""没有文件夹创建,把内容写入TEXT文本文件中:paramfolder:文件夹名称:paramwritestring:要写的内容:return:None"""i=1whileTrue:#判断是否文件存在,如......
  • python: calendar
     importcalendaryy=int(input("请输入年份:"))calendar.setfirstweekday(firstweekday=0)#为了符合习惯,指定日历的第一天是星期一calendar.prcal(yy,w=0,l=0,c=0,m=4)#显示日历,c=0为一周的第一天为星期一,与上面对应结果:#倒计时nowtime......
  • Element Plus el-table 自定义合并行和列
    原文链接:ElementPlusel-table自定义合并行和列前言目标效果是将表格行数据中某个属性值相同的项合并到一起,效果如下:<el-table:data="tableData":span-method="spanMethod"style="width:100%"><el-table-columnprop="StoAlias"label="节点名称&quo......
  • 分布式ID|从源码角度深度解析美团Leaf双Buffer优化方案
    分布式ID的使用场景基于MySql的初步方案第一次优化:Leaf-segment数据库方案第二次优化:Leaf-segment双buffer优化源码解析双buffer优化方案 背景 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产......
  • [学习笔记]python爬虫初体验
    同学吹水,提到了爬虫,于是金工实习回来晚上看了看爬虫(话说为啥所有爬虫教程前面都是一大串python基础教程啊)importurllib.request#1、定义一个网址urlurl='http://www.baidu.com'#2、模拟浏览器向服务器发送请求response=urllib.request.urlopen(url)print(type(response......