python实现PPT素材模板网址爬取步骤(模板我都要)

 一、我们先分析网页

首先  我们要爬的网址是:PPT模板下载_PPT模板免费下载_幻灯片模板下载 -【优品PPT】

在浏览器地址栏输入这个网址访问进去,里面有很多PPT模板

我们随机点击一个进去,再点击下载  ,如图

我们拿一下下载页面的网址可爱卡通小猪佩奇PPT模板 - 优品PPT

然后点击下载,会跳转一个网址

紧接着,我们点击下载地址1或下载地址2,会直接下载

二、代码实现

首先先导入我们的requests 模块  -----需安装 

pip install requests

紧接着写入代码

import requests  #导入请求模块
url = 'https://www.ypppt.com/moban/'
res = requsets.get(url=url,headers=headers)
print(res.text)

最基本的请求网址获取数据

然后就是我们的提取数据

采用正则表达式提取数据    -------导入正则模块   import re

data =re.findall('href="/article/.*?/(.*?).html"', res.text)

拿到我们的下载网址的id,并用for循环遍历(为什么用for循环),因为re提取出来的是一个列表数据。

用正则表达式提取

在把id拼接到我们的下载网址后面(注意是下载网址,不是首页的网址)

可爱卡通小猪佩奇PPT模板 - 优品PPT

https://www.ypppt.com/article/2024/16288.html

然后请求我们的这个网址的到https://down.ypppt.com/uploads/soft/240909/1-240Z91R306.pptx

接下来就是保存数据

下面就是完整代码

import requests  #导入请求模块
import re        #导入正则表达式模块
import time       #导入时间模块
import os
folder_name = 'PPT素材模板'
if not os.path.exists(folder_name):
    os.makedirs(folder_name)
else:
    print('该文件夹已存在')
#请求网址
# 伪装浏览器
headers = {
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0'
}
page = 1
while True:
    if page == 1:
        url = 'https://www.ypppt.com/moban/'
    else:
        url = f'https://www.ypppt.com/moban/list-{page}.html'
    #发送请求
    res = requests.get(url=url, headers=headers)
    if res.status_code==404:#打印请求状态码
        break
    res.encoding = 'utf-8'   #换编码  ----- 换成万国码  utf-8


    #'https://www.ypppt.com/p/d.php?aid=351'  #下载页面网址
    #找到所有的id

    #'https://down.ypppt.com/uploads/soft/141215/1-141215104631.zip'  #下载地址
    #获取数据
    # print(res.text)
    #提取数据
    data =re.findall('href="/article/.*?/(.*?).html"', res.text)
    # print(data)
    for aid in data:
        moban_url = 'https://www.ypppt.com/p/d.php?aid=' + aid
        res1 = requests.get(url=moban_url, headers=headers)

        ppt_url = re.findall('<a href="(.*?)">下载地址1</a>',res1.text)[0]

        file_names = re.findall('<title>(.*?) - 下载页</title>', res1.text)[0]
        # print(file_names)
        if 'pan.baidu'in ppt_url:
            continue
        else:
            houzhui = ppt_url.split('.')[-1]
        res2 = requests.get(url=ppt_url, headers=headers)
        #保存数据
        file_include = os.path.join(folder_name,f'{file_names}-{aid}.{houzhui}')
        open(file_include, mode='wb').write(res2.content)
        time.sleep(2)
    page += 1











'''正则表达式用法  ----找到宿舍文字并打印'''
'''非贪婪模式'''
# text = '小路笑话西安出啊宿舍第三步选爱吃'
# result = re.findall('啊(.*?)第', text)[0]
# print(result)
'''贪婪模式'''
# text = '小路笑话西安出啊宿舍第三步选爱吃'
# result1 = re.findall('西安(.*)第', text)
# print(result1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值