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

news/2024/10/20 16:00:45/

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

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

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

 

import os
import shutil
import time
from time import sleepimport requests
from bs4 import BeautifulSoup
from docx import Document
from docx.shared import Inchesfrom framework.base.BaseFrame import BaseFrame
from sprider.business.DownLoad import DownLoad
from sprider.business.SeleniumTools import SeleniumTools
from sprider.business.SpriderTools import SpriderToolsfrom selenium import webdriver
from selenium.webdriver.common.by import By
from sprider.model.SpriderEntity import SpriderEntity
from sprider.access.SpriderAccess import SpriderAccessclass HuaJunCode:base_url =  "https://down.chinaz.com" # 采集的网址save_path = "D:\\Freedom\\Sprider\\ChinaZ\\"sprider_count = 68  # 采集数量sprider_start_count=665# 从第几个序号开始 直接改数量即可 会做除法操作正 正在采集第32页的第16个资源 debugword_content_list = []folder_name = ""page_end_number=0max_pager=16 #每页的数量haved_sprider_count =0  # 已经采集的数量page_count = 1  # 每个栏目开始业务content="text/html; charset=gb2312"filter_down_file=[]def __init__(self):passdef sprider(self,title_name="NET"):"""采集PHP https://down.chinaz.com/class/572_5_1.htmNET https://down.chinaz.com/class/572_4_1.htmASP https://down.chinaz.com/class/572_3_1.htmPytyhon 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_nameself.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_nameself.save_path = self.save_path+ os.sep + "Code" + os.sep+first_column_name+os.sep + second_folder_name+ os.sep + self.folder_nameBaseFrame().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.merchantwhile 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)passelse: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  # 页码增加1except 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 = 0element_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_urlelement_array.append(e)passif int(self.page_count) == int(self.merchant):self.sprider_start_index = int(self.sprider_start_count) % int(self.max_pager)index=self.sprider_start_indexwhile 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 + 1sprider_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_urlcodeEntity.create_datetime = SpriderTools.get_current_datetime()codeEntity.sprider_url = next_urlcodeEntity.sprider_pic_title = coder_titlecodeEntity.sprider_pic_index = str(index)codeEntity.sprider_pager_index = page_countcodeEntity.sprider_type = self.sprider_typeif SpriderAccess().query_sprider_entity_by_urlandindex(next_url, str(index)) is None:SpriderAccess().save_sprider(codeEntity)else:BaseFrame().debug(coder_title+next_url + "数据采集过因此跳过")continueif SeleniumTools.judeg_element_isexist(driver, "CLASS_NAME", "download-item") == 3:driver.back()BaseFrame().debug(coder_title+"不存在源码是soft因此跳过哦....")continueprint("准备点击下载按钮...")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 + 1BaseFrame().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):passelse:file_name = filesrcFile = down_path + os.sep + file_namefile_ext = os.path.splitext(srcFile)[-1]dstFile = down_path + os.sep + coder_title + file_extos.rename(srcFile, dstFile)srcFile = dstFiledstFile = self.save_path + os.sep + coder_title + file_extshutil.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)passexcept 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:#         passdocument.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 osimport shutilsrc_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)  # 移动文件passdef 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-------------------------------------------华丽分割线-------------------------------------------------------"

开源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.ppmy.cn/news/63984.html

相关文章

【郭东白架构课 模块二:创造价值】24|节点四:如何减少语义上的分歧?

你好&#xff0c;我是郭东白。上节课我们通过一个篇幅比较长的电商案例&#xff0c;详细展示了为什么在架构活动中会出现语义分歧。同时也描述了&#xff0c;架构师在统一语义这个环节中所要创造的真正价值是什么。即&#xff0c;看到不同角色之间语境的差异&#xff0c;然后通…

点评项目导入

文章目录 开篇导读项目地址导入SQL项目架构介绍后端项目导入前端项目导入 开篇导读 实战篇我们要学习以下内容 短信登录 这一块我们会使用redis共享session来实现 商户查询缓存 通过本章节&#xff0c;我们会理解缓存击穿&#xff0c;缓存穿透&#xff0c;缓存雪崩等问题&…

C/C++趣味程序设计百例(41~50)

C/C语言经典、实用、趣味程序设计编程百例精解&#xff08;5&#xff09; 41.马克思手稿中的数学题 马克思手稿中有一道趣味数学问题&#xff1a;有30个人&#xff0c;其中有男人、女人和小孩&#xff0c;在一家饭馆吃饭花了50先令&#xff1b;每个男人花3先令&#xff0c;每个…

Linux网络基础-2

在之前的网络基础博客中&#xff0c;我们对网络的基本概念进行了一个简单的介绍&#xff0c;那么接下来的网络内容中&#xff0c;我们将对网络通信中的典型协议进行详细解释。 我们根据网络协议中的分层来对典型协议进行注意介绍&#xff0c;不过对于物理层的传输我们不做考究…

nio的成本和收益以及客户端是否需要使用nio

nio的成本和收益以及客户端是否需要使用nio nio额外成本: 需要额外安排一个网络线程池 是否需要使用nio? 分节省线程和节省连接两个角度讨论下: 一. 是否节省线程: 服务端: 肯定是要的, 收益: 通过多路复用, 增加安排少量的网络线程即可监听成千上万的端口(客户端连接事件)…

JavaScript通过js的方式来判断一个数奇偶性的代码

以下为通过js的方式来判断一个数奇偶性的程序代码和运行截图 目录 前言 一、通过js的方式来判断一个数奇偶性&#xff08;html部分&#xff09; 1.1 运行流程及思想 1.2 代码段 二、通过js的方式来判断一个数奇偶性&#xff08;js部分&#xff09; 2.1 运行流程及思想 2…

智能美妆镜兴起,如何升级更精细、智能的化妆体验!

经常化妆的小姐姐&#xff0c;会发现化妆除了要有好皮肤、一堆化妆品之外&#xff0c;化妆镜的作用也尤其重要&#xff01;爱拍照的小姐姐们都知道&#xff0c;自拍的效果好不好&#xff0c;和背景、灯光有着很大的关系&#xff0c;其中灯光的冷调或者暖调&#xff0c;也是影响…

机器人工程学习和研究的结构性失衡

结论&#xff1a;无解&#xff0c;谁是那屈指可数的幸运者/(ㄒoㄒ)/~~ 供给&#xff1a;培养的机器人工程专业人才 需求&#xff1a;市场企业主体招聘的相关人才 不匹配&#xff0c;错配&#xff0c;导致供给无效。 机器人工程学习和研究的结构性失衡可能是由多种原因导致的…