分享107个小清新,总有一款适合您

news2024/7/6 19:18:19

PPT链接:https://pan.baidu.com/s/1WqaR_29avEgq46iTSLKfmw?pwd=5r81 
提取码:5r81

源码下载链接:ppt.rar - 蓝奏云

采集的参数

    page_count = 1  # 每个栏目开始业务content="text/html; charset=gb2312"
    base_url = "https://sc.chinaz.com/"  # 采集的网址  https://sc.chinaz.com/tag_ppt/zhongguofeng.html
    save_path = "D:\\Sprider\\ChinaZ\\"
    sprider_count = 110 # 采集数量
    haved_sprider_count = 0  # 已经采集的数量
    word_content_list = []
    folder_name = ""
    first_column_name = "ppt"
    sprider_start_count=800 # 从第几个序号开始 直接改数量即可 会做除法操作正 正在采集第32页的第16个资源 debug

    max_pager=20 #每页的数量

采集主体代码


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

小清新雏菊ppt背景图片
水粉手绘小清新花卉ppt背景图片
绿色小清新婚礼ppt背景图片
小清新简约树叶ppt背景图片
小清新个人简历ppt模板免费下载
水彩风小清新夏日森系ppt模板
文艺小清新毕业纪念册相册ppt模板
小清新文艺营销活动ppt模板下载
小清新风格五月你好ppt模板
小清新文艺范总结汇报ppt模板
小清新教育总结ppt模板
小清新蓝绿植物文艺风ppt模板
小清新轻食招商计划书ppt模板
时尚小清新文艺风ppt模板
小清新文艺风春日通用ppt模板
小清新文艺风通用ppt模板
花卉小清新文艺风ppt模板
小清新文艺风ppt模板
时尚小清新文艺风ppt模板
文艺风小清新旅行日记ppt模板
文艺风小清新旅行相册ppt模板
文艺风小清新旅行日记ppt模板
简约小清新文艺风PPT模板
春分节气小清新ppt模板
唯美小清新春天主题ppt模板
关于春天主题ppt模板
小学网络安全主题教育PPT模板
三年级家长会PPT模板
小清新毕业答辩清爽PPT模板
人力资源员工培训PPT模板
女生小清新自我介绍PPT模板
人力资源部月度述职报告PPT模板
企业文化建设PPT模板
财务助理述职PPT模板
小清新工作总结PPT模板
工作总结月报PPT模板
绿色环保主题PPT模板
小清新职业生涯策划书PPT模板
小清新财务总结报告PPT模板
简历自我介绍PPT模板
公司策划书PPT模板
护士长年终工作总结PPT模板
小清新情人节PPT模板
青春飞扬纪念册PPT模板
转正述职报告PPT范文
员工年终总结PPT模板
答辩免费PPT模板
文艺风小清新旅行相册PPT模板
手绘风圣诞节ppt背景
圣诞节的ppt
简约小清新工作汇报PPT模板
3到5年职业规划PPT模板
小清新紫色简约ppt
关于青春的ppt
绿色ppt模板下载
蓝色小清新演讲ppt模板
动态相册ppt模板
生日祝福ppt模板
开题答辩ppt
读书交流会ppt
介绍自己的ppt
欢送会ppt
个人介绍ppt模板
小清新ppt背景图片
小清新ppt模板
创意ppt模板
介绍家乡的ppt模板
免费ppt模板大全
简约复古小清新工作汇报PPT模板
小清新职业调查报告PPT模板
简洁复古小清新PPT模板
简约文艺小清新工作汇报PPT模板
蓝色日系简约小清新PPT模板
小清新研究生学术课题汇报PPT模板
小清新行政月度工作总结PPT模板
小清新老师教学设计课件PPT模板
人力资源工作总结小清新PPT模板
年中极简小清新工作汇报PPT模板
小清新绿色工作计划PPT模板
小清新卡通简约教学PPT模板
2020工作计划商务风PPT模板
简约小清新工作汇报PPT模板
小清新教学教师通用PPT模板
文艺风小清新旅行日记PPT模板
6.5环境保护绿色小清新PPT模板
小清新简约文艺ins风总结计划PPT模板
工作总结述职小清新商务风PPT模板
小清新公开课教育教学计划PPT模板
绿色小清新夏日风工作报告PPT模板
小清新绿植绘画教学通用PPT模板
小清新文艺风读书分享PPT模板
唯美日系文艺小清新通用PPT模板
小清新治愈系读者文摘PPT模板
小清新开学季读书分享PPT模板
复古欧式小清新人事工作总结PPT模板
小清新养生美容会所活动宣传PPT模板
小清新教学课件总结通用PPT模板
中小学生安全主题教育类通用PPT模板
小清新旅游行业营销宣传PPT模板
小清新抽象教育培训商务总结PPT模板
小清新教师远程在线教育课件PPT模板
小清新艺术抽象教学课件PPT模板
小清新休闲时光餐饮PPT模板
小清新ins风圣诞快乐PPT模板
小清新年终述职报告PPT模板
小清新简约金融理财PPT模板
小清新冬季新品发布会PPT模板
小清新商务营销计划PPT模板
小清新卡通插画风户外旅游PPT模板
文艺小清新旅游专题PPT模板
小清新绿植感恩节总结PPT模板
小清新美容美妆通用PPT模板
 

小清新雏菊ppt背景图片

水粉手绘小清新花卉ppt背景图片

绿色小清新婚礼ppt背景图片

小清新简约树叶ppt背景图片

import os
from time import sleep

import requests
from bs4 import BeautifulSoup
from docx import Document
from docx.shared import Inches

from framework.access.sprider.SpriderAccess import SpriderAccess
from framework.base.BaseFrame import BaseFrame
from framework.pulgin.Tools import Tools
from sprider.business.DownLoad import DownLoad
from sprider.model.SpriderEntity import SpriderEntity
from sprider.business.SpriderTools import SpriderTools
from sprider.business.UserAgent import UserAgent

class ChinaZPPT:
    page_count = 1  # 每个栏目开始业务content="text/html; charset=gb2312"
    base_url = "https://sc.chinaz.com/"  # 采集的网址  https://sc.chinaz.com/tag_ppt/zhongguofeng.html
    save_path = "D:\\Sprider\\ChinaZ\\"
    sprider_count = 112 # 采集数量
    haved_sprider_count = 0  # 已经采集的数量
    word_content_list = []
    folder_name = ""
    first_column_name = "ppt"
    sprider_start_count=0 # 从第几个序号开始 直接改数量即可 会做除法操作正  正在采集第108页的第9个资源 debug

    max_pager=20 #每页的数量

    def __init__(self):
        #A5AndroidCoder().sprider("android", "youxi", 895)  # daimaku
        pass

    def sprider(self, second_column_name):
        """
        采集Coder代码
        :return:
        """
        if second_column_name == "zhongguofeng":
            self.folder_name = "中国风"
            self.first_column_name="tag_ppt"
        elif second_column_name == "xiaoqingxin":
            self.folder_name = "小清新"
            self.first_column_name = "tag_ppt"
        elif second_column_name == "kejian":
            self.folder_name = "课件"
            self.first_column_name = "ppt"

        merchant = int(self.sprider_start_count) // int(self.max_pager) + 1

        second_folder_name = str(self.sprider_count) + "个" + self.folder_name
        self.save_path = self.save_path+ os.sep + "PPT" + os.sep +  second_folder_name
        BaseFrame().debug("开始采集ChinaZPPT...")
        sprider_url = (self.base_url + "/" +  self.first_column_name + "/" + second_column_name + ".html")
        response = requests.get(sprider_url, timeout=10, headers=UserAgent().get_random_header(self.base_url))
        response.encoding = 'UTF-8'
        soup = BeautifulSoup(response.text, "html5lib")
        #print(soup)
        div_list = soup.find('div', attrs={"class": 'ppt-list'})
        div_list =div_list.find_all('div', attrs={"class": 'item'})
        #print(div_list)
        laster_pager_url = soup.find('a', attrs={"class": 'nextpage'})
        laster_pager_url = laster_pager_url.previous_sibling



        #<a href="zhongguofeng_89.html"><b>89</b></a>

        page_end_number = int(laster_pager_url.find('b').string)
        #print(page_end_number)
        self.page_count = merchant

        while self.page_count <= int(page_end_number):  # 翻完停止
            try:
                if self.page_count == 1:
                    self.sprider_detail(div_list,self.page_count,page_end_number)
                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
                    #https://www.a5xiazai.com/android/youxi/qipaiyouxi/list_913_1.html
                    #https://www.a5xiazai.com/android/youxi/qipaiyouxi/list_913_2.html
                    #next_url = sprider_url + "/list_{0}_{1}.html".format(str(url_index), self.page_count)
                    #  (self.base_url + "/" + first_column_name + "/" + second_column_name + "/"+three_column_name+"")
                    next_url =(self.base_url + "/" +  self.first_column_name + "/" + second_column_name + "_{0}.html").format(self.page_count)
                    # (self.base_url + "/" + self.first_column_name  + "/" + second_column_name + "")+"/list_{0}_{1}.html".format(str(self.url_index), self.page_count)
                    response = requests.get(next_url, timeout=10, headers=UserAgent().get_random_header(self.base_url))
                    response.encoding = 'UTF-8'
                    soup = BeautifulSoup(response.text, "html5lib")
                    div_list = soup.find('div', attrs={"class": 'ppt-list'})
                    div_list = div_list.find_all('div', attrs={"class": 'item'})
                    self.sprider_detail(div_list, self.page_count,page_end_number)
                    pass
            except Exception as e:
                print("sprider()执行过程出现错误" + str(e))
                pass
            self.page_count = self.page_count + 1  # 页码增加1

    def sprider_detail(self, element_list, page_count,max_page):
        try:
            element_length = len(element_list)

            self.sprider_start_index = int(self.sprider_start_count) % int(self.max_pager)
            index = self.sprider_start_index

            while index < element_length:
                a=element_list[index]
                if self.haved_sprider_count == self.sprider_count:
                    BaseFrame().debug("采集到达数量采集停止...")
                    break
                index = index + 1
                sprider_info = "正在采集第" + str(page_count) + "页的第" + str(index) + "个资源"
                BaseFrame().debug(sprider_info)

                title_image_obj = a.find('img', attrs={"class": 'lazy'})
                url_A_obj=a.find('a', attrs={"class": 'name'})
                next_url = self.base_url+url_A_obj.get("href")
                coder_title = title_image_obj.get("alt")
                response = requests.get(next_url, timeout=10, headers=UserAgent().get_random_header(self.base_url))
                response.encoding = 'UTF-8'
                soup = BeautifulSoup(response.text, "html5lib")
                #print(next_url)
                down_load_file_div = soup.find('div', attrs={"class": 'download-url'})
                if down_load_file_div is None:
                    BaseFrame().debug("需要花钱无法下载因此跳过哦....")
                    continue

                down_load_file_url = down_load_file_div.find('a').get("href")

                #print(down_load_file_url)
                image_obj = soup.find('div', attrs={"class": "one-img-box"}).find('img')
                image_src = "https:"+ image_obj.get("data-original")
                #print(image_src)

                if (DownLoad(self.save_path).__down_load_file__(down_load_file_url, coder_title, self.folder_name)):
                    DownLoad(self.save_path).down_cover_image__(image_src, coder_title)  # 资源的 封面
                    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) + "个")
            if (int(page_count) == int(max_page)):
                self.builder_word(self.folder_name, self.save_path, self.word_content_list)
                BaseFrame().debug("文件编写完毕,请到对应的磁盘查看word文件和下载文件!")
        except Exception as e:
            print("sprider_detail:" + str(e))
            pass

    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)

            document = Document()
            document.add_heading(word_title, level=2)
            document.add_paragraph("分享"+str(file_count)+"个"+str(word_title)+",总有一款适合您\r\n"
                                   "下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载后可以看到。")
            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=save_path+os.sep+word_title+".docx"
            document.save(file_full_path)
        except Exception as e:
            print("Create Word Fail reason:" + str(e))

    def gen_passandtxt(self,file_count,word_title):

        print("Create PassWord and Pass.txt")
        message=SpriderTools.gen_password()
        password = "".join(message)
        content=""
        content = content + "\n分享"+str(file_count)+"个"+word_title+",总有一款适合您\r\n"
        content = content + "\n\r"
        content=content+"\n都到这里了您就支持一下呗!谢谢老铁~~"
        content=content+"\n\r"
        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.save_path+os.sep+""+str(file_count)+"sell_pass.txt"
        with open(full_path, 'a', encoding='utf-8') as f:
            f.write(content)

    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_doc_file_path = "readme.docx"
        dst_doc_file_path = target_path + os.sep + "readme.docx"
        shutil.copyfile(src_doc_file_path, dst_doc_file_path)  # 移动文件

        pass

if __name__ == "__main__":
    ChinaZPPT().sprider("xiaoqingxin")  # daimaku

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

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

相关文章

Python可视化招聘信息聚合系统 (附源码)!

前言 基于数据技术的互联网行业招聘信息聚合系统&#xff0c;本系统以Python为核心&#xff0c;依托web展示&#xff0c;所有功能在网页就可以完成操作&#xff0c;爬虫、分析、可视化、互动独立成模块&#xff0c;互通有无。 依托python的丰富库实现&#xff0c;爬虫使用Req…

详解设计模式:备忘录模式

详解设计模式&#xff1a;备忘录模式 备忘录模式&#xff08;Memento Pattern&#xff09;也被称为快照模式&#xff08;Snapshot Pattern&#xff09;、Token 模式&#xff08;Token Pattern&#xff09;&#xff0c;是在 GoF 23 种设计模式中定义了的行为型模式。 备忘录模式…

阿里云存储解决方案,助力轻舟智航“将无人驾驶带进现实”

轻舟智航介绍 轻舟智航是一家以“将无人驾驶带进现实”为使命的自动驾驶通用解决方案公司&#xff0c;依赖双擎战略&#xff0c;一方面主张以高性价比的前装量产方案&#xff0c;致力于打造L4级体验的城市高速NOA方案&#xff0c;满足不同客户不同等级的自动驾驶量产需求。另一…

Lottie 动画导出为 GIF/MP4 以及与 QML 集成演示

获取 Lottie 动画文件 lottiefiles 是一个很好的网站, 从上面可以下载到别人分享的 lottie 动画文件. 我们可以下载到多种格式, 下面分别讲解每个格式的下载和适用情景. 下载 JSON 源文件 这是体积最小的格式, 一般在 10kb ~ 100kb 之间. 考虑到 lottiefiles 的服务器在国外…

锂热电池检测设备 你一定没见过这种检测方式!

项目需求 用户希望纳米Namisoft帮他们设计开发一款系统&#xff0c;要求系统软件安装在PC控制装置上&#xff0c;系统通过使用USB、RS232、LAN通讯接口实现对锂电池测试过程中所用到的仪器&#xff08;内阻测试仪、扫码枪、触摸显示器和电源模块等&#xff09;进行软件控制&…

浸没式冷却-散热技术新趋势,一起学Flotherm电子元器件散热仿真

作者&#xff1a;Billy&#xff0c;仿真秀专栏作者 随着电子元器件功率的上升&#xff0c;散热成为技术发展的瓶颈之一。单纯的风冷在一些情况下无法满足散热需求&#xff0c;直接式液冷和间接式液冷因其可以提供更大量级的对流换热系数&#xff0c;带走更多的热量&#xff0c…

基于智能优化算法PSO/GWO/AFO+柔性车间生产调度(Matlab代码实现)

目录 1 柔性车间生产调度 2 运行结果 3 参考文献 4 Matlab代码实现 1 柔性车间生产调度 随着经济全球化的不断加深和市场竞争的日益严峻,传统的单一车间制造模式已经无法满足我国制造业的生产需求,分布式生产制造模式已经成为企业提高生产竞争力的重要手段。由于不同工厂之…

[附源码]计算机毕业设计校友社交系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

目标检测算法——3D公共数据集汇总 2(附下载链接)

>>>深度学习Tricks&#xff0c;第一时间送达<<< &#x1f384;&#x1f384;近期&#xff0c;小海带在空闲之余&#xff0c;收集整理了一批3D公共数据集供大家参考。 整理不易&#xff0c;小伙伴们记得一键三连喔&#xff01;&#xff01;&#xff01;&…

微服务自动化【Docker-Compose】

目录 1. docker-compose 2. docker-compose安装与配置 3. docker-compose.yml 配置文件基本介绍 3.1 version: 指定 docker-compose.yml 文件的写法格式 3.2 services&#xff1a;多个容器集合 4. docker-compose 基本指令 5. docker-compose 网络 5.1 指定网络模式 …

不懂业务不清楚指标?这40套可视化大屏模板,让你突破职场天花板

报表可以说是中国职场的一大特色&#xff0c;不少职场人需要每天做各种报表给领导或者业务决策者看&#xff0c;为此甚至诞生了不少的“表哥表姐”。但很多人在做报表的时候其实并不懂业务&#xff0c;需要找业务确定业务指标才做的下去。 今天我就分享40多个报表模板&#xf…

Spark 3.0 - 10.Ml 常用 Sample 采样方法

目录 一.引言 二.数据准备 三.随机采样 Sample 四.按权重拆分 randomSplit 五.分层采样 sampleByKey 六.总结 一.引言 使用 Spark 进行机器学习、数据分析等项目时&#xff0c;常常需要对数据进行采样&#xff0c;下面介绍三种最常用的采样方法&#xff1a; A.随机采样:…

Vue3 学习笔记 —— 自动导入 Vue3 APIs、v-model

目录 1. 自动导入 Vue3 APIs —— unplugin-auto-import/vite 2. v-model 2.1 相较于 Vue2&#xff0c;Vue3 做出了哪些变化&#xff1f; 2.2 绑定一个 v-model 2.2.1 父组件 2.2.2 子组件 2.3 绑定多个 v-model 2.3.1 父组件 2.3.2 子组件 2.4 v-model 中的自定义修…

Android Material Design之ShapeableImageView(十三)

效果图 资源引入 implementation com.google.android.material:material:1.4.0属性 属性描述android:id控件idandroid:layout_width控件长度android:layout_height控件高度app:shapeAppearance控件外观样式app:strokeWidth画笔粗度app:strokeColor画笔颜色android:src图像资源…

MySQL逻辑架构

逻辑架构剖析 服务器处理客户端请求 数据库查询请求流程&#xff1a; 连接层 系统&#xff08;客户端&#xff09;访问 MySQL 服务器前&#xff0c;做的第一件事就是建立 TCP 连接。 经过三次握手建立连接成功后&#xff0c; MySQL 服务器对 TCP 传输过来的账号密码做身份认…

了解Wi-fi频段概念

前言 信道带宽&#xff0c;应该了解wi-fi频段&#xff0c;这样才能分析有多少信道带宽可用&#xff0c;以及如何在没有任何干扰&#xff08;失真&#xff09;的情况下有效地使用它。 2.4GHz和5GHz频段可用于wi-fi。 2.4 GHz Wi-Fi频段&#xff1a;在2.4 GHz频段&#xff0c;…

通过Shell脚本自动安装HiveJDBC测试提供CDH5网盘地址

〇、参考地址 1、Linux下编写脚本自动安装hive https://blog.csdn.net/weixin_44911081/article/details/121227024?ops_request_misc%257B%2522request%255Fid%2522%253A%2522163695916016780269859534%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%252…

Linux——网络配置(重点)

目录 一、查看网络IP和网关 1.1 那怎么看连接成功呢&#xff1f; 1.1.1 虚拟机接受主机 1.1.2 主机可以接收到虚拟机 1.2 怎么查看电脑的IP地址 方法一&#xff1a; 方法二&#xff1a; 1.3 怎么查看虚拟机的IP地址 二、网络连接模式 2.1 基本了解 2.2 VMware三种网络…

夯实算法-每日温度

题目&#xff1a;LeetCode 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0c;请在该位置用 0 来代替。…

【关系抽取】基于Bert的信息抽取模型CasRel

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…