分享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)
最后送大家一首诗:
山高路远坑深,
大军纵横驰奔,
谁敢横刀立马?
惟有点赞加关注大军。