python爬取海量PPT模板,再也不用辛苦地找模板了

文章目录

    • 一、前言
    • 二、爬取思路
    • 三、数据爬取
        • 1、导入响应的库
        • 2、完整代码
        • 3、结果展示
    • 四、Blogger’s speech
    • 五、补充(乱码问题已解决)

一、前言

到了大学,经常会因为课外活动,学校活动,团课活动,等一系列活动做一些PPT。经常要找PPT模板来应急(不会还有人自己做PPT模板吧,哈哈哈 ),为了省事,于是,我想到了爬虫,把目标网页全部爬下来,供自己使用。

二、爬取思路

首先,选取目标网页:优品PPT
在这里插入图片描述

接下来,是数据获取的思路

1、解析初始界面数据

2、获取到每个每个PPT对应的li节点

3、获取对应PPT模板的链接和名字

4、进入每个PPT模板的详情界面

5、解析界面

6、获取PPT模板下载页面的链接

7、进入下载页面

8、解析界面获取下载链接

9、完成PPT模板的下载

在这里插入图片描述
图中的xpath分别为:

xpath_1 = '/html/body/div[2]/ul/li'
xpath_2 = '/html/body/div[2]/div[2]/div/div[1]/div[2]/a/@href'
xpath_3 = '/html/body/div[1]/div/ul/li[1]/a/@href'

获取xapth的方法,如图以获取xpath_2为例:
在这里插入图片描述

三、数据爬取

1、导入响应的库

import os
import chardet
import requests
from lxml import etree
from tqdm import tqdm

2、完整代码

# -*- coding: UTF-8 -*-
"""
@Author  :远方的星
@Time   : 2021/5/4 21:17
@CSDN    :https://blog.csdn.net/qq_44921056
@腾讯云   : https://cloud.tencent.com/developer/column/91164
"""
import os
import chardet
import requests
import logging
from lxml import etree
from tqdm import tqdm
from fake_useragent import UserAgent# 日志输出的基本配置
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s: %(message)s')# 随机产生请求头
ua = UserAgent(verify_ssl=False, path='fake_useragent.json')path = 'D:/PPT模板'
if not os.path.exists(path):os.mkdir(path)# 随机切换请求头
def random_ua():headers = {"accept-encoding": "gzip",    # gzip压缩编码  能提高传输文件速率"user-agent": ua.random}return headers# 得到xpath对应的结果
def get_link(url, xpath):response = requests.get(url=url, headers=random_ua())response.encoding = chardet.detect(response.content)['encoding']  # 自动转换编码格式,与网页一致response = response.texthtml = etree.HTML(response)link = html.xpath(xpath)return link# 获取下载链接并下载
def get_zip_url(url):xpath_1 = '/html/body/div[2]/ul/li'xpath_2 = '/html/body/div[2]/div[2]/div/div[1]/div[2]/a/@href'xpath_3 = '/html/body/div[1]/div/ul/li[1]/a/@href'a = get_link(url, xpath_1)  # 获取所有的li节点for i in tqdm(range(len(a))):  # 对li节点进行遍历webpage_url = 'https://www.ypppt.com' + a[i].xpath('./a[1]/@href')[0]  # 获取到第一个链接zip_name = a[i].xpath('./a[2]/text()')[0] + '.zip'  # 获取文本,组成待下载文件的文件名download_link = 'https://www.ypppt.com' + get_link(webpage_url, xpath_2)[0]  # 获取下载页面download_url = get_link(download_link, xpath_3)[0]  # 获取下载链接save_path = path + '/' + zip_name  # 图片的保存地址res = requests.get(url=download_url, headers=random_ua()).contentwith open(save_path, 'wb') as f:  # 写入文件,即下载f.write(res)def main():page = int(input('请输入你想要爬取的页数:'))# 网页第一页和之后的地址不是同一个规律,使用条件判断for num in range(1, page+1):if num == 1:url = 'https://www.ypppt.com/moban/'logging.info('正在下载第1页模板,请稍等片刻嗷')get_zip_url(url)else:url = 'https://www.ypppt.com/moban/list-{}.html'.format(num)logging.info('正在下载第{}页模板,请稍等片刻嗷'.format(num))get_zip_url(url)logging.info('你所要求的任务,全部都完成喽~')if __name__ == "__main__":main()

3、结果展示

在这里插入图片描述

在这里插入图片描述

四、Blogger’s speech

其实,我是想用python顺便把zip文件解压了,更方便一点,但是我用zipfile成功解压之后,解压文件名出现乱码情况,我在网上找了一些解决方案,没整明白,就不多做解压,以免“画蛇添足”。

如有不足,或者有乱码的解决方法,还请大佬评论区留言或私信我,我会进行补充。

感谢您的支持,希望可以点赞,关注,收藏,一键三连哟。

五、补充(乱码问题已解决)

解包乱码问题解决方案

作者:远方的星
CSDN:https://blog.csdn.net/qq_44921056
腾讯云:https://cloud.tencent.com/developer/column/91164
本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

讲座笔记 | 批判性思维和论文写作

这是上周六早课的一个笔记。听同学反馈是这是一门很有意思的思政课,的确是深层次地有意思~ 课程邀请了张仁铎教授跟我们讲如何进行学术写作。课程下来,受益匪浅。特此记录。如果内容有侵权,一定删除! 讲座题目是《批判性思维及S…

从GLM-130B到ChatGLM,清华ChatGLM一作曾博士报告ppt

摘要:GLM-130B是一个中英双语预训练基座模型,拥有1300亿参数,模型架构采用通用语言模型GLM,其22年8月开源版本已完成4000亿token预训练。斯坦福基础模型中心22年11月对全球30个大模型进行的评测报告显示 GLM-130B在准确性和恶意性指标上与GPT-3 175B (davinci) 接近或持平,…

2023 年 5 月最新脚本神器合集来了

苏生不惑第429 篇原创文章,将本公众号设为星标,第一时间看最新文章。 之前分享过的上百个实用浏览器扩展和油猴脚本我都同步到博客了https://sushengbuhuo.github.io/blog ,2023年5月继续分享几个实用扩展脚本,如果想导出浏览器扩…

120个颠覆你认知的gpt使用案例汇总,办公效率提高500%

文章目录 介绍1.代码生成2.代码注释3.代码解释器4.充当 Linux 终端5.代码纠正6.英语口语练习7.专业的翻译8.面试官9.写任何考科目的作业10.快速解决学习中的任何问题11.网站推荐12.网络工具软件推荐13.快速学习新技能14.快速总结长文本的核心思想15.解决日常办公问题16.制作各种…

ZOOM join meeting提示密码错误

最近phd面试陆陆续续来了。昨天尝试加入国外的一个会议,但是打开zoom客户端的时候提示没办法登录。更气的是,直接join meeting的话,每次都说我会议密码错误,即使我输入的是对的。 网上看了一下,有人推荐用us官网上下载…

开机密码输对却提示密码错误

今早8点30准时来到实验室 按照惯例: 打开电脑→输开机密码 但提示密码错误 嗯??!! 首先我检查了CapsLock是否开启 因为我设置都是小写 其次我重启、关机、换键盘(台式dell optiplex 3020)都无济…

记录使用git老是出现用户密码错误的情况

出现这个问题的原因是因为 我们在使用android studio 的时候 把git的用户密码给记住了,所以当我们去别人的代码仓库去下载 代码的时候会出现这个问题 解决方法: 在android studio中使用CtrlAlts调出Setting菜单,搜索passowrd ,然…

如何写好一份数据分析报告?

如何写好一份数据分析报告? 很多人在写数据分析报告的时候,往往更关注如何将报告做的更美观,例如:做漂亮的可视化图表,做很炫的PPT等。但当别人看你做的数据分析报告的时候,往往更关注这个报告对他是否有价…

2022-2028年中国PTT行业市场研究及前瞻分析报告

【报告类型】产业研究 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了PTT行业相关概述、中国PTT行业运行环境、分析了中国PTT行业的现状、中国PTT行业竞争格局、对中国PTT行业做了重点企业…

chatgpt赋能python:Python上色:提升可视化效果和代码可读性

Python上色:提升可视化效果和代码可读性 Python是一种高级编程语言,被广泛使用,尤其是在数据科学领域。而可视化和代码可读性是Python编程中十分重要的方面。在本文中,我们将介绍Python上色的概念和好处,并提供几种方…

TED+肢体语言塑造你自己+power+fake it till you make it

TED肢体语言塑造你自己powerfake it till you make it AmyCuddy在TED的演讲—Your body language shapes who you are《肢体语言塑造你自己》 首先我想要提供给你们一个免费的 非科技的人生窍门 你只需这样做 改变你的姿势二分钟时间 但在我要把它告诉你们之前,我想…

数据分析师岗位分析

“数据分析师”岗位分析 由于想从事数据分析师方面的工作,而做这个分析 第一可以拿来实际操作一下数据分析的技能,熟悉一下近段时间学习的工具 第二可以用数据的方式来了解一下数据分析师这个职位在成都的大体情况 所以做了这个分析。 一. 数…

人人都是数据分析师

一.耳熟能详的数据你真的了解吗? 1.数据的类型 根据数据的存储形式,可以将数据分为结构化数据和非结构化数据两种类型 存储在数据库中的结构化数据能够很方便地进行检索、分析以及展示分析结果。结构化数据是进 行数据分析的基本类型,大多数…

数据分析师的基本职责(合集)

数据分析师的基本职责 数据分析师的基本职责1 职责: 1、负责使用网站分析工具,对全站的流量进行统计、分析和监控,分析流量的来源、关键词、访问深度,停留时间等维度,能得出相应的逻辑给出指导意见; 2、根据网站的架构…

了解数据分析师,转行数据分析师,成为数据分析师

什么是数据分析师 有人说,数据分析师就是分析数据的人呗。 有人说,数据分析师是从浩如烟海的数据中发掘价值的淘金者。 有人说,数据分析师是对搜集到的数据进行整理、分析,在依据所属行业提出的要求进行研究、评估和预测的人。 有…

数据分析师招聘情况之python分析

项目简介: 通过此次数据分析解决转行数据分析师是否合适的问题 目的: 1.不同城市数据分析师需求量; 2.总体薪酬分布; 3.不同城市薪酬分布情况; 4.数据分析师对经验的要求; 5.经验对薪酬的影响&#xff1b…

我们爬了上千个数据分析师信息, 你真的懂数据分析师嘛?

01 项目简介 有人说,这个时代,只要站在了风口,猪都能飞起来,尤其互联网行业,千变万化,日异月殊,一不小心就错过了风口,如果没记错的话,前几年火的是App开发,后…

如何快速成为数据分析师

没有什么牛逼的事情是能够速成的,越是底层的、收益周期越长的技能越是这样。 但这并不代表,我们不能用一些有意思的方法,把学习的过程变得高效而有趣。 学习一门技术之前,你应该知道,你想要达成的目标是什么样的&…

数据分析案例-数据分析师岗位招聘信息可视化

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

数据分析师岗位 分析可视化

目录 前言 一、导入模块 二、数据处理与分析 1.读取数据 2.查看数据表格描述 3.处理重复值 4.处理缺失值 5.提取地区信息 6.提取经验信息 7.提取薪资信息 三、Pyecharts数据可视化 1.每个地区的招聘数量 2.平均工资最高的地区 3.经验学历需求图 4.招聘公司所在…