166个ASP源码下载链接:https://pan.baidu.com/s/19W7FmY9nADL1Rge8e5uqiQ?pwd=skhh
提取码:skhh
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 = 166 # 采集数量 sprider_start_count=66 # 从第几个序号开始 直接改数量即可 会做除法操作正 正在采集第32页的第16个资源 debug word_content_list = [] folder_name = "" page_end_number=0 max_pager=15 #每页的数量 haved_sprider_count =0 # 已经采集的数量 page_count = 1 # 每个栏目开始业务content="text/html; charset=gb2312" 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 :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" first_column_name = title_name # 一级目录 second_folder_name = str(self.sprider_count) + "个" + self.folder_name #二级目录 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=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(10) 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 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 = "code" 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,120,1,down_path,"zip|rar|gz")#判断源码 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() files = os.listdir(down_path) srcFile = down_path + os.sep + files[0] 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 dstFile=str(dstFile).replace("/","") shutil.move(srcFile, dstFile) # 移动文件 else: BaseFrame().error("检测下载文件出错可能原因是等待时间不够已经超时,再等待70秒...") time.sleep(70) shutil.rmtree(down_path) #如果没下载完是无法删除的 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("asp",6) document = Document() document.add_heading(""+word_title+"", level=2) document.add_paragraph("分享"+str(file_count)+"个"+word_title+",总有一款适合您\r\n" "下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载后可以看到。") 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 = target_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("ASP") pass
银色网新企业网站管理系统 v8.1
无忧中英繁企业网站系统 v2022.7.5
网新中英文企业手机电脑一体化建站 v5.3
无忧中英繁企业网站专业版 v2022.6.28
消防部队门户信息网站管理系统 v2022.6.24
网展中英企业网站系统蓝色风格 v8.1
科美智能企业网站管理系统标准版(带手机版) v6.0
YidaCMS免费开源网站管理系统 v3.5.1 build20220515
校无忧新高考选科系统 v1.1
校无忧通讯录管理系统 v2.0
网址铺吧网址导航源码程序 v2022.0513
简记个人博客网站源码 v2.10.01
JsAspBBS论坛 v1.2204.06
张仰勇个人主页 v2.0
腾和苗木网站管理系统 v1.13
乘风多用户计数器access版 v4.5
天天ASP论坛程序 v2.4 正式版
启明星考试系统Exam v35.0
乘风多用户计数器 mssql版 v4.7
自定义填表任务 v1.0
入户拟返人员排查统计 v3.0
XYCMS律师事务所建站系统 v4.4
电影网址导航 v20220104版
人力资源企业网站管理系统(含手机站) v3.0
DodeCms成创博客网站管理系统 v1.0
CuzCms成创网站内容管理系统免费版 v2.1
个人IP网整站源码PC WAP v3.3
乌托邦CRM客户管理系统 v15.1
绿色网新企业网站管理系统 v7.9
yxbbs小型社区论坛 v20210507
腾和企业网站管理系统(多风格 手机版) v12.4
Asp Ajax(Jquery)实用例子 v2.0
动态表格生成数据管理系统 v2020.04
亿联网云建站平台代理系统源码 v3.7.5
微信抽奖系统源码 v3.0
微信订餐系统 v1.0
多城市分类信息网站源码电脑加手机微信 v5.0
科美智能企业网站管理系统专业版(带手机版) v6.0
XYCMS画室培训结构源码 v4.7
CC校友录(毕业感恩版) v11.2.3
华科网络内容管理系统 v5.6 手机 PC
easyppt PPT在线制作工具 v1.0
网展企业网站系统 v7.5
宽屏首页列表翻页教程网(带手机) v5.83
熊海博客 v3.0.2
天人文章管理系统(带手机版) v5.82 UTF8
天人文章管理系统(带手机版) v5.81 GB2312
Angel工作室(AngelExam)驾校考试系统 v1.0
清爽娱乐网源码 v5.77
蓝宝石留言本asp版 v7.61
FE内容付费系统响应式(带手机版) v5.7
XYCMS搬家公司建站系统 v3.9
智睿中小学校网站系统 v10.8.9
asp excel多用途查询系统 v2021
智睿报修管理系统 v5.8.1
懒人DVD影院P2P免费电影小偷 v5.5 广告管理赚钱版
wd1x留言本系统(多用户) v2.21
乘风文件管理系统 v2.0
QQ号码站程序 v1.0
万岳开源网校系统源码 v2.2.0 iOS版
XYCMS园林苗圃企业建站系统 v4.4
汇成免费开源企业网站管理系统 v1.0
汇成政府建站CMS系统 v1.6
分类目录源码 v1.0
XYCMS心理咨询中心建站系统 v4.1
腾和电子产品报价单系统 v1.5
凡诺企业网站管理系统 v11.7
WebPlayer9 P2P视频点播电影整站系统 bulid 081006
嵩嵩报名系统 v4.2
EUCMS响应式企业整站源码(含独立手机站) v390.7
AnyEiP企业内网办公系统 v20180901
动科(DK)企业网站管理系统 v10.3
网钛文章管理系统(OTCMS) v2.93
天天在线订餐系统 v3.0
啊估收藏夹(记事便笺+网站收藏) v2.2.1
啊估文章软件站 v4.1.4.4
jianbook会员版超简留言社区系统 v3.5
天天自动抓取更新系统 v1.0
门卫卡点管理系统 v1.01
雨楠旅游网服务管理系统(含手机版) v2020.2.12
壹网分类目录 v2.5
天兴公司资产管理系统 v5.0 build20200110
仿生活家模板装饰设计公司网站源码 v1.0
谜语及答案大全 v1.3
青辰(思康)印刷下单系统 v3.1
青辰(思康)客户管理系统全能版 v4.0
5ucms百度主动推送插件 v1.0
最新星外IDC代理API程序模版 v1.2
安信农业电商门户系统 v2.3.0
ASP版阿里云OSS云储存上传 v1.0
腾和搬家网站管理系统 v1.1.2
7384学生成绩查询系统 v201910
爱卡自动发卡平台系统 v1903
橙光乐园网上选课系统 v1.7
XYCMS庆祝建国70周年专题系统 v1.0
XYCMS生物科技公司源码 v3.8
asp txt 通用查询系统手机版 v2019
腾和企业网站管理系统(灰色简洁版) v7.1
Angel工作室学校网站管理系统 v1.5
xls转txt等工具集 v1.2
信息收集系统 v2.10.0
XYCMS教育培训机构网站源码 v6.2
双轨制会员管理系统 v9.2
无名微博 v5
sdcms灰色寺院道教佛教网站源码 v1.0
企业ERP进销存OA v1.1
大气生物有机肥网站企业公司源码 v1.0
新空IDC业务管理系统 v1.3
天天售后服务开单系统 v1.0
青辰网络考试系统免费版 X2.0
天天客户管理CRM系统网站源码 v1.0
在线记账理财管理系统 v6.2 build20190122
天天供求信息网站管理系统 v6.2 Build20190118
html5css自适应抽奖程序 v1.0
无忧购物系统ASP通用版 v2018.12.12
海科智能企业建站系统棕色风格 v4.3
网站统计分析系统 v4.3
高三中英繁企业网站系统专业版 v5.0
ISite企业建站系统 v1.2.3
CKFinder 文件管理器 v3.4.5 for asp.net
Shop7z网上购物系统普及版 v2.9
HTTP Commander 网文件经理 v5.0.2
微微直播间系统 v18.10.30
Excel二维表数据转SELECT CASE 工具 v2.0
无忧购物系统ASP专业版 v2018.10.23
HTTP Commander 网文件经理 v4.6.6
传奇游戏发布站2018版 v6.0
协会团体门户网站系统 v18.9
宁志天蓝色中小学校网站管理系统 宽屏 v18.9
启点在线企业网站管理系统 v1.1.6
RefineCMS-内容管理系统 v1.0
物品申领审批发放系统 v2.0.1
7384手机号码归属地查询系统 v2018
智睿手机Wap投票评选系统 v3.2.0
露珠cms v5.54
校无忧企业网站系统 v1.7
ok3w图片系统头条版 v3.0
图片采集小偷程序 v1.5
XYCMS幼儿园建站系统 v2.8
域名授权管理系统网络公司客户管理 v6.0
NetGather企业多语言免费建站系统 v4.0.0 Ultimate
实用技术网cms v1.0
嵩嵩报名系统(多项目版) v4.1
网站蜘蛛爬行监控插件 v2.0 20180403
亮点宽屏电影 v8.0
asp身份证批量查询与解读系统 v3.3
kw企业网站管理系统 v1.0
视力康复机构asp网站 v1.0
PAAJCMS内容管理系统 v1.5
简约左侧菜单HTML5全屏网站 v2.5 build20171025
烈火文章管理系统 v2.0
ASPCMS开源企业网站管理系统 UTF8 v2.7.3
学生入学报名系统 v2.15.0
世纪风企业网站管理系统 v4.7
58天淘宝刷单系统SQL免费版 v3.6
企业网站源码系统 v1.8
校无忧评选投票系统 v3.2
S-CMS装饰网站(双语带手机版) v3.0 build20170812
CwWps创文地方门户管理系统 v1.7
CwCMS创文企业网站管理系统 v1.8
企信通asp短信接口 v2.0
角色权限管理系统 v1.0.0
学生成绩查询系统 v3.0
英文外贸网站源码 v1.0.0
我爱米表 v1.0
网趣网上购物系统时尚版 v15.0
import os
# 查找指定文件夹下所有相同名称的文件
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)
if __name__ == "__main__":
dirPath = 'D:\Freedom\Sprider\ChinaZ\Code\ASP\\166个ASP源码\ASP源码'
#dirPath = 'D:\\Freedom\\Sprider\\ChinaZ\\Code\\NET\\99个NET源码\\NET源码' D:\Freedom\Sprider\ChinaZ\Code\PHP\126个PHP源码\PHP源码
fileName4 = '服务器软件.url'
fileName3 = '脚本之家.url'
fileName2 = 'Readme-说明.htm'
fileName5 = 'jb51.net.txt'
fileName1 = '说明.htm'
search_file(dirPath, fileName1)
search_file(dirPath, fileName2)
search_file(dirPath, fileName3)
search_file(dirPath, fileName4)
search_file(dirPath, fileName5)
search_file(dirPath, "源码之家说明.txt")
search_file(dirPath, "服务器常用软件.html")
search_file(dirPath, "访问脚本之家.html")
import os # 查找指定文件夹下所有相同名称的文件 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) if __name__ == "__main__": dirPath = 'D:\Freedom\Sprider\ChinaZ\Code\ASP\\166个ASP源码\ASP源码' #dirPath = 'D:\\Freedom\\Sprider\\ChinaZ\\Code\\NET\\99个NET源码\\NET源码' D:\Freedom\Sprider\ChinaZ\Code\PHP\126个PHP源码\PHP源码 fileName4 = '服务器软件.url' fileName3 = '脚本之家.url' fileName2 = 'Readme-说明.htm' fileName5 = 'jb51.net.txt' fileName1 = '说明.htm' search_file(dirPath, fileName1) search_file(dirPath, fileName2) search_file(dirPath, fileName3) search_file(dirPath, fileName4) search_file(dirPath, fileName5) search_file(dirPath, "源码之家说明.txt") search_file(dirPath, "服务器常用软件.html") search_file(dirPath, "访问脚本之家.html")
166个ASP源码下载链接:https://pan.baidu.com/s/19W7FmY9nADL1Rge8e5uqiQ?pwd=skhh
提取码:skhh