分享88个Java框架源码,总有一款适合您

9 篇文章 2 订阅

分享88个Java框架源码,总有一款适合您

 

88个Java框架源码下载链接:https://pan.baidu.com/s/1uKHn6GshPNzCMSJMT7eqzg?pwd=vpl9 
提取码:vpl9

Python采集代码下载链接:采集代码.zip - 蓝奏云

hsweb企业后台管理框架 v4.0.15

Jboot微服务框架 v4.0.8

MaxKey单点登录认证系统 v3.5.14

sqltoy-orm框架系统 v5.2.34


    def sprider(self,title_name="JS"):
        """
       采集
       JavaScript https://down.chinaz.com/class/602_574_1.htm
       Java https://down.chinaz.com/class/574_517_1.htm
       :return:
       """
        if title_name == "PHP":
            self.folder_name = "PHP源码"
            self.second_column_name = "572_5"

        elif title_name == "JS":
            self.folder_name = "JavaScript框架源码"
            self.second_column_name = "602_574"

        elif title_name == "Java":
            self.folder_name = "Java框架源码"
            self.second_column_name = "574_517"



        BaseFrame().right("本次采集参数:日志路径:" + str(BaseFrame().LOG_PATH) + "")
        BaseFrame().right("本次采集参数:sprider_count=" + str(self.sprider_count) + "")
        BaseFrame().right("本次采集参数:title_name=" + title_name + "")
        BaseFrame().right("本次采集参数:second_column_name=" + self.second_column_name + "")

        first_column_name = title_name # 一级目录
        self.sprider_category = title_name  # 一级目录
        second_folder_name = str(self.sprider_count) + "个" + self.folder_name #二级目录
        self.sprider_type =second_folder_name
        self.merchant=int(self.sprider_start_count) //int(self.max_pager)+1 #起始页码用于效率采集
        self.file_path = self.save_path + os.sep + self.sprider_top_level + os.sep + first_column_name + os.sep + second_folder_name
        self.save_path = self.save_path+ os.sep +  self.sprider_top_level + os.sep+first_column_name+os.sep + second_folder_name+ os.sep + self.folder_name
        BaseFrame().debug("开始采集ChinaZCode"+self.folder_name+"...")
        sprider_url = (self.base_url + "/class/{0}_1.htm".format(self.second_column_name))
        down_path="D:\\Freedom\\Sprider\\ChinaZ\\"+ self.sprider_top_level+"\\"+first_column_name+"\\"+second_folder_name+"\\Temp\\"
        if os.path.exists(down_path) is True:
            shutil.rmtree(down_path)
        if os.path.exists(down_path) is False:
            os.makedirs(down_path)

        if os.path.exists(self.save_path ) is True:
            shutil.rmtree(self.save_path )
        if os.path.exists(self.save_path ) is False:
            os.makedirs(self.save_path )
        chrome_options = webdriver.ChromeOptions()
        diy_prefs ={'profile.default_content_settings.popups': 0,
                    'download.default_directory':'{0}'.format(down_path)}
        # 添加路径到selenium配置中
        chrome_options.add_experimental_option('prefs', diy_prefs)
        chrome_options.add_argument('--headless') #隐藏浏览器

        # 实例化chrome浏览器时,关联忽略证书错误
        driver = webdriver.Chrome(options=chrome_options)
        driver.set_window_size(1280, 800)  # 分辨率 1280*800

        # driver.get方法将定位在给定的URL的网页,get接受url可以是任何网址,此处以百度为例
        driver.get(sprider_url)
        # content = driver.page_source
        # print(content)
        div_elem = driver.find_element(By.CLASS_NAME, "main")  # 列表页面 核心内容
        element_list = div_elem.find_elements(By.CLASS_NAME, 'item')

        laster_pager_ul = driver.find_element(By.CLASS_NAME, "el-pager")
        laster_pager_li =laster_pager_ul.find_elements(By.CLASS_NAME, 'number')
        laster_pager_url = laster_pager_li[len(laster_pager_li) - 1]
        page_end_number = int(laster_pager_url.text)
        self.page_count=self.merchant
        while self.page_count <= int(page_end_number):  # 翻完停止
            try:
                if self.page_count == 1:
                    self.sprider_detail(driver,element_list,self.page_count,page_end_number,down_path)
                    pass
                else:
                    if self.haved_sprider_count == self.sprider_count:
                        BaseFrame().debug("采集到达数量采集停止...")
                        BaseFrame().debug("开始写文章...")
                        self.builder_word(self.folder_name, self.word_content_list)
                        BaseFrame().debug("文件编写完毕,请到对应的磁盘查看word文件和下载文件!")
                        break
                    #(self.base_url + "/sort/{0}/{1}/".format(url_index, self.page_count))
                    #http://soft.onlinedown.net/sort/177/2/

                    next_url = self.base_url + "/class/{0}_{1}.htm".format(self.second_column_name, self.page_count)
                    driver.get(next_url)

                    div_elem = driver.find_element(By.CLASS_NAME, "main")  # 列表页面 核心内容
                    element_list = div_elem.find_elements(By.CLASS_NAME, 'item')
                    self.sprider_detail( driver, element_list, self.page_count, page_end_number, down_path)
                    pass
                #print(self.page_count)
                self.page_count = self.page_count + 1  # 页码增加1
            except Exception as e:
                print("sprider()执行过程出现错误:" + str(e))
                sleep(1)

okhttps轻量级HTTP客户端 v4.0.1

maku-boot企业级快速开发平台 v3.0.0

Spring Boot应用开发框架 v3.0.2

Spring Boot应用开发框架 v2.7.8

LinkWeChat开源系统 v3.3.1

APIJSON网络传输协议 v6.0.0

JeeSite快速开发平台 v5.2.1

JeeSite Spring Cloud v5.2.1

Jackson高性能的JSON处理 v2.14.2

BeetlSQL数据库访问框架 v3.20.0

pig权限管理系统 v3.6.5

Erupt低代码全栈类框架 v1.11.2

Sa-Token权限认证框架 v1.34.0

SOFABoot开源框架 v3.16.3

Discovery微服务框架 v6.20.0

Discovery微服务框架 v3.37.0

mina高性能Java网络框架 v2.2.1

Netty高性能网络应用框架 v4.1.87

Play Framework应用程序框架 v2.8.19

Dubbo服务框架 v3.1.5

Dubbo服务框架 v2.7.21

Novel前后端分离权限管理系统 v1.8.2

easyAi傻瓜式Java AI框架 v1.0.5

smart-socket AIO通信框架 v1.6.1

SOFABolt网络通信框架 v1.6.6

ActFramework全栈框架 v1.9.2

AdminLTE-admin 轻量级权限管理框架 v2.2

sureness认证鉴权框架 v1.0.8

hippo4j动态线程池框架 v1.4.3

盘古开发框架 v5.3.0

BudWk企业级开源开发框架 v8.0.0

TCP Gateway v1.0

Knife4j v4.0.0

SOFA-Bolt网络通信框架 v1.6.6

RuoYi若依权限管理系统 v4.7.6

MateCloud微服务架构 v4.6.8

Easy-Es 搜索引擎框架 v1.1.1

liteFlow规则引擎框架 v2.9.6

JEECG BOOT 低代码开发平台 v3.4.4

Spring Boot应用开发框架 v2.6.14

Hippy跨端开发框架 v2.15.5

Unirest轻量级的HTTP开发库 v3.14.1

flyray-base分布式基础框架 v1.0

Hibernate数据持久层框架 v6.1.6

Voovan v5.0.0 alpha

JSite 快速开发框架 v0.6.0

JFinal极速WEB+ORM框架 v5.0.8

JGroups通讯框架 v4.2.22

JustAuthPlus v1.0.7

import os
import shutil
import time
from time import sleep
from docx import Document
from docx.shared import Inches
from framework.base.BaseFrame import BaseFrame
from sprider.business.DownLoad import DownLoad
from sprider.business.SeleniumTools import SeleniumTools
from sprider.business.SpriderTools import SpriderTools
from selenium import webdriver
from selenium.webdriver.common.by import By
from sprider.model.SpriderEntity import SpriderEntity
from sprider.access.SpriderAccess import SpriderAccess
title_name = "社会教育"
class ChinaZJsSelenium:
    base_url = "https://sc.chinaz.com/"  # 采集的网址
    save_path = "D:\\Freedom\\Sprider\\ChinaZ\\"
    sprider_count = 88 # 116+66+20
    sprider_start_count = 0

    word_content_list = []
    folder_name = ""
    page_end_number = 0
    max_pager = 24  # 每页的数量
    haved_sprider_count = 0  # 已经采集的数量
    page_count = 1  # 每个栏目开始业务content="text/html; charset=gb2312"
    filter_down_file = []
    word_image_count = 5  # word插入图片数量 同时也是明细采集图片和描述的数量
    sprider_detail_index = 0  # 明细方法采集的数量 累加
    sprider_top_level = "HTML"

mica mqtt 组件 v2.0.3

Jboot微服务框架 v3.17.1

lock4j高性能分布式锁 v2.2.3

Forest轻量级HTTP客户端框架 v1.5.28

springrain云原生微服务实现 v1.0

angularjs Web页面框架 v12.2.17

Ehcache Java 缓存框架 v3.10.8

JeeSite Spring Cloud v4.6.0

JeeSite快速开发平台 v4.6.0

ServiceComb Java Chassis微服务SDK v2.8.1

jabdp快速开发平台 v1.2.0 bulid20221114

Guns后台管理系统 v7.3.1

SpringBlade微服务开发平台 v3.5.0

Roses v7.3.1

Cola Cloud v1.0

Vue.js渐进式框架 v2.7.14

Hibernate数据持久层框架 v5.6.14

light-task-scheduler v1.6.6

Smart Admin通用型中后台解决方案 v1.12.0

jdchain v1.6.5

spring-boot-elasticsearch v1.0

open-cloud微服务平台 v3.0.0

koalas-rpc v1.0

tiny框架 v3.4.10.1

kitty权限管理系统 v1.0 前端

kitty权限管理系统 v1.0 后端

xxl-sso分布式单点登录框架 v1.1.0

MyBatis数据持久层框架 v3.5.11

t-io百万级网络框架 v3.8.3

magic-api HTTP接口映射框架 v2.0.1

Hibernate数据持久层框架 v5.3.28

WxJava微信开发工具包 v4.4.0

fhs-framework快速开发平台 v3.2.0

MyBatis Mapper v2.0.0

AgileBPM敏捷工作流开发平台 v1.6.8

import os
import shutil

def void_folder(path):
    # 访问path路径下的文件或文件夹
    lst = os.listdir(path)
    # 打印每一层的文件或文件夹
    for name in lst:
        # 拼接名称,得到绝对路径,判断该文件是否符合是文件夹
        real_path = os.path.join(path, name)
        # 如果是文件夹,则打空格表示,并且递归访问下一层
        if os.path.isdir(real_path):
            # print(name)
            files = os.listdir(real_path)
            if len(files) == 0:
                print("void_folder():"+name)
                shutil.rmtree(real_path)
                endindex = len(real_path) - len(name)
                real_path = real_path[0:endindex]
                void_folder(real_path)
            else:
                void_folder(real_path)
        # 如果不是文件夹,直接打印,不再递归访问下一层
        else:
            #print(name)
            pass
def void_file(dirPath):
    dirs = os.listdir(dirPath)  # 查找该层文件夹下所有的文件及文件夹,返回列表
    for file in dirs:
        file_full_name = dirPath + '/' + file
        file_ext = os.path.splitext(file_full_name)[-1]
        if file_ext is None  or file_ext=="":
            continue

        if "rar" == str(file_ext.split(".")[1]):
            os.remove(file_full_name)
        if "zip" == str(file_ext.split(".")[1]):
            os.remove(file_full_name)
        if "gz" == str(file_ext.split(".")[1]):
            os.remove(file_full_name)
        if "tgz" == str(file_ext.split(".")[1]):
            os.remove(file_full_name)

# 查找指定文件夹下所有相同名称的文件
def search_file(dirPath, fileName):
    dirs = os.listdir(dirPath)  # 查找该层文件夹下所有的文件及文件夹,返回列表
    for currentFile in dirs:  # 遍历列表
        absPath = dirPath + '/' + currentFile

        if os.path.isdir(absPath):  # 如果是目录则递归,继续查找该目录下的文件
            search_file(absPath, fileName)
        elif currentFile == fileName:
            #print(absPath)  # 文件存在,则打印该文件的绝对路径
            os.remove(absPath)

最后送大家一首诗:

山高路远坑深,
大军纵横驰奔,
谁敢横刀立马?
惟有点赞加关注大军。
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亚丁号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值