分享57个Python源码,总有一款适合您

100个Python代码大全:学完这篇从Python小白到架构师 Python是一种广泛使用的高级编程语言,以其简洁优雅、易于学习和强大的库而闻名。无论你是一位经验丰富的程序员还是初学者,都可以从这种语言的丰富资源中受益。在本篇博客中,我将分享100个实用的Python代码示例,旨在帮助你掌握Python编程,并在日常工作中提高效率。 阅读详情

Python源码

分享57个Python源码,总有一款适合您

【----打包好文末一起免费领!----】

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

在这里插入图片描述

参数代码

    base_url =  "https://down.chinaz.com" # 采集的网址   
    save_path = "D:\\Freedom\\Sprider\\ChinaZ\\"
    sprider_count = 88  # 采集数量
    sprider_start_count=0# 从第几个序号开始 直接改数量即可 会做除法操作正 正在采集第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 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" 
        #

        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,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) 
                    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 

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

                else: 
                    BaseFrame().error("检测下载文件出错可能原因是等待时间不够已经超时,再等待70秒...")
                    time.sleep(70)
                    #shutil.rmtree(down_path) #如果没下载完是无法删除的
                    #使用数组append记录文件名字 移动的时候过滤

                    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文件和下载文件!")

Locust负载测试工具 v2.14.2
ArkID企业级IDaaS/IAM平台系统 v2.6.10
Apache Superset数据探查与可视化平台 v2.0.1
Jumpserver开源堡垒机 v2.28.6
bk-PaaS蓝鲸智云PaaS平台 v2.14.40
PaddleNLP v2.4.8
CODO云管理平台 v1.0
MindArmour v1.9.0
PaddleHub v2.3.1
PaddlePaddle深度学习平台 v2.4.1
Macast投屏软件 v0.7 源码包
MrDoc在线文档系统 v0.8.5
DrissionPage Web自动化操作集成工具 v2.7.3
Quick Cut 视频处理软件 v1.6.10
MindInsight可视化仪表板 v1.9.0
GreaterWMS仓库管理系统 v2.1.25
W5 SOAR安全编排与自动化响应平台 v0.6.2
wukongrobot智能音箱项目 v2.5.4
Spyder集成开发环境 v5.4.0
Hyperledger Fabric区块链分布式账本 v2.4.7
simpleui v2021.8.1
Spug自动化运维平台 v3.2.5
Archery SQL审核查询平台 v1.9.1
smartchart数据可视化平台 v5.7
PaddleDetection v2.5.0
PaddleOCR工具库 v2.6.0
Lepus数据库企业监控系统 v5.1
ChiaTools (Chia官方钱包P图功能的替代品) v1.5.6
Graphite网站实时信息采集和统计 v1.1.10
Redash开源的数据图表工具 v10.1.0
PaddleX v2.0.0 rc0
Spyder集成开发环境 v4.2.5
Jumpserver v2.7.3
PyMiner数学工具 v2.1.0 beta
Hyperledger Fabric区块链分布式账本 v1.4.11
vtags编辑器插件 v1.0
Taisite-Platform v1.0
PyMiner数学工具 v1.0.2
ECommerceCrawlers Web爬虫 v11
yiwa伊瓦 v1.0
Senta情感分析系统 v1.0
DFace人脸识别系统 v0.5
inna映射技术 v1.0
PySipder爬虫程序 v0.3.10
PPMessage在线客服平台 v1.0
MySQLMTOP数据库监控系统 v2.1
plainCms异步协程内容管理系统 v1.0
ZeroNet去中心化网站系统 v0.7.1
API Star工具箱 v0.7.2
鸿鹄智能云CMS站群系统 v1.2.2
双鱼林Python基于Django图书管理系统 v1.0
在线网络小说阅读网站 v1.2
Django博客系统 v3.2 正式版
ijd8 Octopress主题 v0.1
求打赏 v1.0
GAEPhotos v1.0.3
Mediacore 多媒体建站系统 v0.9.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\Python\\57个Python源码\Python源码'
    #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")

最后送大家一首诗:

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

读者福利:如果大家对Python感兴趣,这套python学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

① Python所有方向的学习路线图,清楚各个方向要学什么东西

② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析

③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论

④ 20款主流手游迫解 爬虫手游逆行迫解教程包

⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解

⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解

⑦ 超300本Python电子好书,从入门到高阶应有尽有

⑧ 华为出品独家Python漫画教程,手机也能学习

⑨ 历年互联网企业Python面试真题,复习时非常方便

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

在这里插入图片描述

在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。↓↓↓
或者

【点此链接】领取

好文推荐

了解python的前景:https://blog.youkuaiyun.com/SpringJavaMyBatis/article/details/127194835

了解python的兼职副业:https://blog.youkuaiyun.com/SpringJavaMyBatis/article/details/127196603

【Python基础】Python入门教程(非常详细),附带源码和案例 Python是一种高级编程语言,以其简洁易读和强大的功能而广受欢迎。它适用于数据科学、机器学习、Web开发等多个领域。 阅读详情

相关推荐

python的在线电影推荐系统(完整源码+说明).zip

Python 完整项目,包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载, 1. 技术组成 前端: html 后台框架:Python 开发环境:pycharm 数据库可视化工具:使用 Navicat 2 部署 用 pycharm 打开,使用 pip 下载相关依赖,然后 run 就 ok 了,如果不会部署的话,可以联系我

【Python项目】你们还在冲会员看电影电视剧嘛?Python带你免费看电影电视剧资源 | 附源码

上方是一部分代码展示,源码获取可以上方图片标题哈,或者相关文件哟反正就一个点所有的付费视频,电影,电视剧都可以直接观看,不存在冲会员这回事的啦。

Gtieguo的博客 16万+

扫码器USB键盘报告描述符数据格式解析

Byte0用于判断Shift是否按下,当按下时Byte0的Bit1会置1,即0x02,若未按下,Bit为0,即0x00。0x00 0x00 0x00 0x00 0x00 0x00 0x00--->>未按下Shift。0x00 0x00 0x00 0x00 0x00 0x00 0x00--->>按下Shift。0x00 0x04 0x00 0x00 0x00 0x00 0x00--->>输出A。0x00 0x04 0x00 0x00 0x00 0x00 0x00--->>输出a。

m0_65548585的博客 1142

【亲测免费】 分享57个Python源码,总有一款适合您

分享57个Python源码,总有一款适合您 去发现同类优质开源项目:https://gitcode.com/ 本仓库提供了57个精选的Python源码,涵盖了多种应用场景和功能模块。无论你是初学者还是经验丰富的开发者,都能在这里找到适合你的Python项目。 内容概览 项目数量: 57个 适用人群: 初学者、中级开发者、高级开发者 项目类型: 包括但不限于Web开发、数据分析、机器学习、自动化工...

gitblog_06505的博客 1839

虚拟机扩容——非LVM分区

虚拟机扩容——非LVM分区

ytraister的博客 3905

用scons编译STM32F103工程

想用vscode来实现代码的编辑与调试代码,原先这个工程是用STM32CUBEIDE建立的,参照STM32CUBEIDE的编译过程,编写了下面的scons脚本,scons是初次了解,既然是python脚本,那么会什么就怎么写吧。 import os import sys import glob cross_compiler_prefix = 'arm-none-eabi-' CC = cross_compiler_prefix+'gcc' CXX = cross_compiler_prefix+'g+

cylinc的专栏 1623

分享77个HTML&CSS源码,总有一款适合您

HTML

zy0412326的专栏 3578

统信UOS安装CH384串口卡驱动

本文讲解如何在统信UOS系统下安装CH384 PCIE多串口驱动安装过程,CPU为飞腾D2000。其他Linux内核系统安装亦可参照类似方法。

shjhuang的专栏 1884
上一篇: Python代码的编写运行方式介绍_python安装好后怎么写代码
下一篇: 「新手」如何零基础开始学编程?
黑客老许
博客等级 码龄8年 6153粉丝 1028原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值