分享52个Java源码,总有一款适合您

news2024/12/23 10:39:59

Java源码

分享52个Java源码,总有一款适合您

下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载后可以看到。

源码下载链接:https://pan.baidu.com/s/1YpNL5QWwQ18Y-KRmFHFs5g?pwd=qc8w 
提取码:qc8w

 

import os
import shutil
import time
from time import sleep

import requests
from bs4 import BeautifulSoup
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


class HuaJunCode:
    base_url =  "https://down.chinaz.com" # 采集的网址
    save_path = "D:\\Freedom\\Sprider\\ChinaZ\\"
    sprider_count = 68  # 采集数量
    sprider_start_count=665# 从第几个序号开始 直接改数量即可 会做除法操作正 正在采集第32页的第16个资源 debug



    word_content_list = []
    folder_name = ""
    page_end_number=0
    max_pager=16 #每页的数量
    haved_sprider_count =0  # 已经采集的数量
    page_count = 1  # 每个栏目开始业务content="text/html; charset=gb2312"
    filter_down_file=[]

    def __init__(self):
        pass

    def sprider(self,title_name="NET"):

        """
       采集
       PHP https://down.chinaz.com/class/572_5_1.htm
       NET https://down.chinaz.com/class/572_4_1.htm
       ASP https://down.chinaz.com/class/572_3_1.htm
       Pytyhon https://down.chinaz.com/class/604_572_1.htm

       :return:
       """
        if title_name == "PHP":
            self.folder_name = "PHP源码"
            self.second_column_name = "572_5"
        elif title_name == "Go":
            self.folder_name = "Go源码"
            self.second_column_name = "606_572"
        elif title_name == "NET":
            self.folder_name = "NET源码"
            self.second_column_name = "572_4"
        elif title_name == "ASP":
            self.folder_name = "ASP源码"
            self.second_column_name = "572_3"
        elif title_name == "Python":
            self.folder_name = "Python源码"
            self.second_column_name = "604_572"
        elif title_name == "JavaScript":
            self.folder_name = "JavaScript源码"
            self.second_column_name = "602_572"
        elif title_name == "Java":
            self.folder_name = "Java源码"
            self.second_column_name = "572_517"
        #


        first_column_name = 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 + "Code" + os.sep + first_column_name + os.sep + second_folder_name
        self.save_path = self.save_path+ os.sep + "Code" + 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\\Code\\"+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.save_path, 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)



    def sprider_detail(self, driver,element_list,page_count,max_page,down_path):
        """
        采集明细页面
        :param driver:
        :param element_list:
        :param page_count:
        :param max_page:
        :param down_path:
        :return:
        """
        index = 0
        element_array=[]
        element_length=len(element_list)
        for element in element_list:
            url_A_obj = element.find_element(By.CLASS_NAME,  'name-text')
            next_url = url_A_obj.get_attribute("href")
            coder_title = url_A_obj.get_attribute("title")
            e=coder_title+"$"+ next_url
            element_array.append(e)
            pass
        if int(self.page_count) == int(self.merchant):
            self.sprider_start_index = int(self.sprider_start_count) % int(self.max_pager)
            index=self.sprider_start_index
        while index < element_length:


            if os.path.exists(down_path) is False:
                os.makedirs(down_path)

            if self.haved_sprider_count == self.sprider_count:
                BaseFrame().debug("采集到达数量采集停止...")
                break

            #element = element_list[index]
            element=element_array[index]
            time.sleep(1)

            index = index + 1
            sprider_info="正在采集第"+str(page_count)+"页的第"+str(index)+"个资源,共"+str(max_page)+"页资源"
            BaseFrame().debug(sprider_info)
            next_url=element.split("$")[1]
            coder_title=element.split("$")[0]
            # next_url = element.find_element(By.TAG_NAME, 'a').get_attribute("href")
            # coder_title =element.find_element(By.TAG_NAME, 'img').get_attribute("title")
            driver.get(next_url) # 请求明细页面
            try:
                codeEntity = SpriderEntity()  # 下载过的资源不再下载
                codeEntity.sprider_base_url = self.base_url
                codeEntity.create_datetime = SpriderTools.get_current_datetime()
                codeEntity.sprider_url = next_url
                codeEntity.sprider_pic_title = coder_title
                codeEntity.sprider_pic_index = str(index)
                codeEntity.sprider_pager_index = page_count
                codeEntity.sprider_type = self.sprider_type
                if SpriderAccess().query_sprider_entity_by_urlandindex(next_url, str(index)) is None:
                    SpriderAccess().save_sprider(codeEntity)
                else:
                    BaseFrame().debug(coder_title+next_url + "数据采集过因此跳过")
                    continue

                if SeleniumTools.judeg_element_isexist(driver, "CLASS_NAME", "download-item") == 3:
                    driver.back()
                    BaseFrame().debug(coder_title+"不存在源码是soft因此跳过哦....")
                    continue
                print("准备点击下载按钮...")
                driver.find_element(By.CLASS_NAME, "download-item").click() #下载源码

                result,message=SpriderTools.judge_file_exist(True,240,1,down_path,"zip|rar|gz|tgz")#判断源码
                if result is True:

                    sprider_content = [coder_title, self.save_path + os.sep +"image"+ os.sep + coder_title + ".jpg"]  # 采集成功的记录
                    self.word_content_list.append(sprider_content)  # 增加到最终的数组
                    self.haved_sprider_count = self.haved_sprider_count + 1
                    BaseFrame().debug("已经采集完成第" + str(self.haved_sprider_count) + "个")
                    time.sleep(1)
                    driver.back()

                    coder_title = str(coder_title).replace("/", "") #去掉windows不识别的字符
                    files = os.listdir(down_path)
                    file_name = files[0] #获取默认值
                    if len(self.filter_down_file)>0:
                        for file in files:
                            for filter_file in self.filter_down_file:
                                if str(file) in str(filter_file):
                                    pass
                                else:
                                    file_name = file

                    srcFile = down_path + os.sep + file_name
                    file_ext = os.path.splitext(srcFile)[-1]

                    dstFile = down_path + os.sep + coder_title + file_ext
                    os.rename(srcFile, dstFile)
                    srcFile = dstFile
                    dstFile = self.save_path + os.sep + coder_title + file_ext

                    shutil.move(srcFile, dstFile)  # 移动文件

                else:
                    try:
                        BaseFrame().error("检测下载文件出错可能原因是等待时间不够已经超时,再等待60秒...")
                        time.sleep(60)
                        shutil.rmtree(down_path) #如果没下载完是无法删除的
                        #清空数组
                        self.filter_down_file.clear()
                    except Exception as e:
                        # 使用数组append记录文件名字 移动的时候过滤
                        coder_title = str(coder_title).replace("/", "")  # 去掉windows不识别的字符
                        self.filter_down_file.append(coder_title)
                    pass
            except Exception as e:
                #shutil.rmtree(down_path)
                BaseFrame().error("sprider_detail()执行过程出现错误:" + str(e))
                #driver.get(sprider_url)
                #driver.quit()

        if(int(page_count)==int(max_page)):
            self.builder_word(self.folder_name,self.save_path,self.word_content_list)
            BaseFrame().debug("文件编写完毕,请到对应的磁盘查看word文件和下载文件!")

    def builder_word(self, word_title, save_path, list_files):
        """
        输出产物是word文件
        :param word_title: 文件的标题
        :param save_path: 文件的保存路径
        :param list_files: 文件集合(单个内容)
        :return:
        """
        try:
            self.copy_file(self.save_path)

            print("Create Word"+word_title)
            file_count= len(list_files)

            self.gen_passandtxt(file_count,word_title,list_files)
            random_full_file_name = SpriderTools.get_word_image("java",6)
            document = Document()
            document.add_heading(""+word_title+"", level=2)

            document.add_paragraph("分享"+str(file_count)+"个"+word_title+",总有一款适合您\r\n"
                                   "下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载后可以看到。")
            document.add_paragraph("源码下载")
            document.add_picture(random_full_file_name, width=Inches(3))
            ppt_tieles = ""
            for files in list_files:
                ppt_tieles = ppt_tieles + str(files[0]) + "\r"
            document.add_paragraph(ppt_tieles)
            # for files in list_files:
            #     try:
            #         document.add_paragraph(files[0])
            #         document.add_picture(files[1], width=Inches(3))
            #     except Exception as e:
            #         pass
            document.add_paragraph("最后送大家一首诗:")
            paragraph = document.add_paragraph()  # 单独控制
            paragraph.add_run("山高路远坑深,\r")
            paragraph.add_run("大军纵横驰奔,\r")
            paragraph.add_run("谁敢横刀立马?\r")
            paragraph.add_run("惟有点赞加关注大军。\r")
            paragraph.bold = True  # 字体加粗
            file_full_path=self.file_path+os.sep+word_title+".docx"
            document.save(file_full_path)
        except Exception as e:
            print("Create Word Fail reason:" + str(e))
    def copy_file(self,target_path):
        print("copy files")
        import os
        import shutil
        src_apk_file_path="薅羊毛专业版.apk"
        dst_apk_file_path=target_path+os.sep+"薅羊毛专业版.apk"
        #shutil.copyfile(src_apk_file_path, dst_apk_file_path)  # 移动文件

        src_pdf_file_path = "薅羊毛专业版.pdf"
        dst_pdf_file_path = target_path + os.sep + "薅羊毛专业版.pdf"
        #shutil.copyfile(src_pdf_file_path, dst_pdf_file_path)  # 移动文件

        src_pdf_file_path = "亚丁号.url"
        dst_pdf_file_path = self.file_path  + os.sep + "亚丁号.url"
        shutil.copyfile(src_pdf_file_path, dst_pdf_file_path)  # 移动文件

        src_doc_file_path = "readme.docx"
        dst_doc_file_path = self.file_path + os.sep + "readme.docx"
        shutil.copyfile(src_doc_file_path, dst_doc_file_path)  # 移动文件

        pass
    def gen_passandtxt(self,file_count,word_title, list_files):

        print("Create PassWord and Pass.txt")
        message=SpriderTools.gen_password()
        password = "".join(message)
        content=""
        content = content + "\n分享"+str(file_count)+"个"+word_title+",总有一款适合您"
        content = content + "\n\r"
        content=content+"\n都到这里了您就支持一下呗!谢谢老铁~~"
        content=content+"\n\r"
        content = content + "\n\r"
        content = content + "\n\r"
        for files in list_files:
            content = content+str(files[0])+ "\n"
        content=content+"\n文件我就不一一列举了,送老铁一首打油诗"
        content=content+"\n学习知识费力气,"
        content=content+"\n收集整理更不易。"
        content=content+"\n知识付费甚欢喜,"
        content=content+"\n为咱码农谋福利。"
        content=content+"\n\r"
        content=content+"\n\r"
        content=content+"\n感谢您的支持"
        content=content+"\n\r" 
        content=content+"\n-------------------------------------------华丽分割线-------------------------------------------------------"
        content=content+"\n友情提醒解压密码:"+password+""

        full_path=self.file_path+os.sep+""+str(file_count)+"sell_pass.txt"
        with open(full_path, 'a', encoding='utf-8') as f:
            f.write(content)


if __name__ == "__main__":
    HuaJunCode().sprider("Java")
    pass

开源Java博客Roller v5.0 for tomcat
meshcms v3.6 源码版
meshcms v3.6 编译版
Cross-Browser Rich Text Editor v3.13
QQ在线客服悬浮代码 v2.0
js全国城市三级联动 v1.0.2
smarty4j (Java模板引擎) v1.0.0
162100editor(HTML在线编辑器) v2.2
JSP视频播客系统 v3.0
JForum v3.0 beta
JForum v2.1.9 源码版
Apache Lenya  v2.0.4
JForum v2.1.9 安装包
E6Mall 商城系统(网店系统) v1.6.4
五个焦点滚动图合辑 v1.0
jsp选题管理系统 v1.0
jsp+sql2000库存管理系统 v1.0
寻仙Jsp+Mysql(WAP2.0) v11.1.28
voa英语学习(英语听力)网站源码 v1.1
世界学习室可视化全能编辑器 v1.0.2
JavaCenter Home  v2.0 build 20101105 UTF8
JavaCenter Home  v2.0 build 20101105 GBK源码
JavaCenter Home  v2.0 build 20101105 GBK
网站分享推广按钮 v3.0
Smart-Report报表工具-JAVA v1.0
双鱼林jsp客户管理系统免费学习版 v1.0
EasyJForum v3.0 简体中文 UTF8
EasyJForum v3.0 简体中文 GBK
voa英语听力学习平台 v2.0
个性化主页空间 v1.0
奥搜站内搜索 JSP版
Lerx网站管理系统 v1.0
MyBlog v1.0
Xblo(JSP+Servlet+JavaBean+Oracle单用户Blog) v0.1
简洁订餐系统 v0.1.2.2010.0821
奇新CMS内容管理系统 v2.0.3
游戏交易网ORACLE v1.0.0 简体UTF-8源码版
游戏交易网MySQL v1.0.0 简体UTF-8源码版
jsp+hibernate+struts内容管理系统 v1.0
荆棘鸟图片(人物)投票评选系统拓展版 2010
云网论坛CWBBS v2.5
JEECMS v2.4.2 系统源码
JEECMS  v2.4.2 系统安装包
CMSJ v3.1 beta utf8
SSH绿色健康购物网 
贞龙(BIZOSSCMS)高性能内容管理系统JAVA版 v4.1
皓月综合管理系统 v2009.12.10
图片预览系统(jsp版)
WeTogether员工考勤管理及任务管理系统 v1.0
网盟新闻发布系统 v0.9
交易撮合系统 v1.0 build 090907
jsdoc_toolkit v2.3.1
完整的JSP网站书店项目 v1.5
鑫鑫网上书店购物网站源码 v1.0
Java网络爬虫(蜘蛛)源码 
明日JSP新闻系统
ttcodes Alexa 查询系统 v1.1
EasyJForum v2.32
铁人下载系统 Liuxing  v1.0
JSP 免费SEO宣传工具 v1.0
电信计费系统完整代码
ttcodes JSP图片小偷 v1.0
JSP网上交易平台
MyBlog JSP博客程序
struts+hibernate开发的BBS源码
双鱼林jsp人事工资系统
Helloer企业级论坛系统 v2.5.0
学校教务管理系统(jsp+servlet+javabean)
 

最后送大家一首诗:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/165250.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

吴恩达机器学习课程笔记:监督学习、无监督学习

1.吴恩达机器学习课程笔记&#xff1a;监督学习、无监督学习 吴恩达机器学习系列课程&#xff1a;监督学习 吴恩达机器学习系列课程&#xff1a;无监督学习 仅作为个人学习笔记&#xff0c;若各位大佬发现错误请指正 机器学习的学习算法&#xff1a;监督学习、无监督学习、半…

1591_AURIX_TC275_PMU_Flash的保护

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 可以支持保护功能的Flash是前面文档中呼出来的几块&#xff0c;其中DFlash由于多模块公用&#xff0c;还有具体的拆分。PFlash可以进行两方面的保护&#xff0c;一个是错误的读取方式保护&…

python列表(list)底层实现

list Python内存管理中的基石 Python中所有类型创建对象时&#xff0c;底层都是与PyObject和PyVarObject结构体实现&#xff0c;一般情况下由单个元素组成对象内部会使用PyObject结构体&#xff08;float&#xff09;、由多个元素组成的对象内部会使用PyVarObject结构体 2个…

应用层——电子邮件(SMTP、POP3、IMAP)

目录 1. 电子邮件系统及组成结构 1.1 电子邮件 1.2 电子邮件系统的组件 2. SMTP(邮件发送协议) 2.1 SMTP的特征 2.2 SMTP的基本操作 2.3 SMTP协议的基本流程 2.4 SMTP交互与应答 2.5 SMTP与HTTP的对比 3. 邮件报文格式与MIME 3.1 电子邮件格式 3.2 多用途网际…

STM32时钟系统原理和作用

时钟对于单片机来讲类似于心脏对于人体&#xff0c;单片机通过时钟信号控制单片机工作。 1.时钟系统工作流程 时钟源输入----被分频或倍频----输出至系统/外设/外部接口 2.时钟分类 RC时钟精度低&#xff0c;体积小&#xff0c; OSC时钟精度高&#xff0c;体积大。 3.部分…

5.多层感知机

5.多层感知机 目录 感知机 基本内容训练感知机感知机存在的问题总结 多层感知机 隐藏层 单隐藏层-单分类 激活函数 ReLU函数sigmoid函数tanh函数总结 多类分类 多层感知机的从零开始实现 初始化模型参数激活函数模型损失函数训练 多层感知机的简洁实现 模型模型选择、欠拟合和…

⭐基于unity物体移动的方法API的总结-GIF图文详解⭐

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏 unity常用API ⭐相关文章&#xff1a; 线性差值函数以及平滑阻尼的运用和实践&#xff08;Lerp AND SmoothDa…

文献阅读:Towards Out-of-Distribution Sequential Event Prediction:A Causal Treatment

文献阅读&#xff1a;Towards Out-of-Distribution Sequential Event Prediction&#xff1a;A Causal Treatment 1. 问题描述2. 方法 & 模型设计 1. loss定义2. 模型设计 3. 实验 & 结果 1. 基础实验2. CaseQ策略细节分析 4. 结论 & 总结 文献链接&#xff1a;ht…

GDB调试学习

文章目录简介准备工作常用命令简介 ​GDB 全称“GNU symbolic debugger”&#xff0c;它诞生于 GNU 计划&#xff08;同时诞生的还有 GCC、Emacs 等&#xff09;&#xff0c;是 Linux 下常用的程序调试器。发展至今&#xff0c;GDB 已经迭代了诸多个版本&#xff0c;当下的 GD…

五个了解自己天赋优势的分析工具(二)盖洛普优势测评

盖洛普优势测评 盖洛普优势识别器&#xff08;也叫克利夫顿优势评估&#xff09;&#xff0c;是盖洛普公司旗下⼀款王牌产品&#xff0c;是⼀个专⻔⽤来识别⼀个⼈隐形天赋、潜在优势、驱动⼒来源的⼯具&#xff0c;它可以帮助⼀个⼈科学认识⾃⼰。 它把⼈的思维⽅式、感受形…

网络初识

一些基本概念认识IP地址概念&#xff1a;IP地址用于定位主机的网络地址&#xff0c;标识了网络上设备所在的位置。也就是说主机在哪。格式&#xff1a;IP地址是一个32位的二进制数&#xff0c;通常被分割为4个字节。通常我们使用“点分十进制”的方式来表示主机的IP地址——>…

2.2 SQL入门和实战

文章目录数据库介绍MySQL的入门应用SQL的基础与DDLSQL的分类&#xff1a;SQL的基础语法特性&#xff1a;DDL库管理&#xff1a;DDL表管理&#xff1a;SQL-DMLSQL-DQLDQL基础查询DQL分组聚合排序分页Python&MySQLcommit数据库介绍 数据库的层级&#xff1a;按照库->表-&…

WAL Write AheadLog

WAL即 Write Ahead Log&#xff0c;WAL的主要意思是说在将元数据的变更操作写入磁盘之前&#xff0c;先预先写入到一个log文件中 磁盘读取分为顺序读取和随机读取 内存读取也有顺序读取和随机读取 下图是磁盘&#xff0c;内存 顺序和随机读取的效率表 一般来说内存读取速度要…

硬件设计基础 —— 电流、电压、功率

目录 电流的形成 原子的结构 原子核与电子 电子的移动 电流的测量 电子的运动形成电流 电压的作用 功率 电流的形成 原子的结构 上图为原子结构示意图中间带正电的称为原子核带负电荷的电子围绕在他周围旋转原子核与电子 电子离原子核越远&#xff0c;外围电子越少&…

Cadence PCB仿真使用Allegro PCB SI进行数字电路毛刺容差设置的方法图文教程

⏪《上一篇》   🏡《总目录》   ⏩《下一篇》 目录 1, 概述2,配置方法3,总结1, 概述 数字信号的波形往往不是完美的低和高电平,经常会有一些毛刺。这在信号完整性仿真中也经常遇到,为了保证仿真顺利进行需要对接收电路的毛刺容差进行设置。本文简单介绍其配置方法。…

COCO_02 二值分割数据集制作为COCO数据集

文章目录1 前言2 分割数据集格式2.1 原始图像2.2 分割标注2.3 文件名信息3 制作COCO格式基本流程4 根据分割标注制作COCO标注&#xff08;核心&#xff09;Main1 前言 最近要开始实例分割任务&#xff0c;由于实例分割是建立再目标检测基础之上的&#xff0c;因此需要制作能用…

两道一年级数学题把我干废了

目录一、背景二、题目三、过程第一解&#xff1a;第二解&#xff1a;第三解&#xff1a;四、总结五、升华一、背景 最近在看小学一年级数学课本的时候&#xff0c;其中两道题让我感叹现在小学教育题的伟大和深厚&#xff0c;并且从中领悟到了…哈哈哈&#xff0c;先卖个官司&a…

【Ansible】Ansible 角色

Ansible 角色 文章目录Ansible 角色一、Ansible Roles 介绍二、Roles 结构三、role 的制作过程四、如何在PlayBook中使用 Role1. 经典&#xff08;原始&#xff09;方式2. 新方式五、如何使用 Galaxy一、Ansible Roles 介绍 一个数据中心有可能存在好多类型的服务器。比如&…

【博客588】ipvs nat模式下独立于iptables与conntrack的连接跟踪表和NAT机制

ipvs nat模式下独立于iptables与conntrack的连接跟踪表和NAT机制 ipvs的连接跟踪表和NAT机制 ipvs只有DNAT和de-DNAT功能 ,它独立与iptables和conntrack,实现了自己的一套连接跟踪表和NAT机制。ipvs仅仅在做DNAT后对conntrack连接进行更新,防止回包因为没有记录而被丢弃。 i…

邂逅Vue.js开发

1、认识Vue Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式 JavaScript框架。 全称是Vue.js或者Vuejs&#xff1b;它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff1b;帮助你高效地开发用户…