Python爬虫爬取PPT(requests+re+os模块的简单使用)

写太久了,可能出问题了,因为网站是在不断更新的,所以博主又更新了一个比较好的,地址如下:https://blog.csdn.net/weixin_42813107/article/details/118581499?spm=1001.2014.3001.5501

目标网址:https://www.ypppt.com/moban/zhongguo/
爬取内容为PPT模板,分类:中国风,改变URL可以下载其他分类,请自行修改
部分下载地址为百度网盘,使用跳过,爬取获得的是rar或者zip文件(编号命名),需要自己解压,全选解压到当前文件夹就行了

下载如图:在这里插入图片描述

解压后:
在这里插入图片描述
每个压缩文件内容:
在这里插入图片描述
下面上代码(仅供参考学习,有不足):

import requests
import re
import os

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'}

def details_urls(url):#获取每一个页面的详情页地址,返回一个连接列表
    #url = 'https://www.ypppt.com/moban/zhongguo/list-5.html'

    req = requests.get(url,headers=headers)

    data=req.content.decode('utf-8')

    url1=re.findall('<a href="/article(.*?)" class', data)

    return url1

def downloads(url):#获取每一个详情页的下载页面地址,返回一个连接
    req = requests.get(url,headers=headers)

    data=req.content.decode('utf-8')

    down=re.findall('<a href="/p/(.*?)"', data)

    url_= 'https://www.ypppt.com/p/'+down[0]
    return url_

def downloads_urls(url):
    req = requests.get(url,headers=headers)

    data=req.content.decode('utf-8')

    down=re.findall('<a href="/uploads/(.*?)"', data)

    name = re.findall('<a href="/uploads/soft/.*?/(.*?)"', data)

    url_= 'https://www.ypppt.com/uploads/'+down[0]
    
    return name[0],url_

def download(name,url):
    path = r'./PPTS/'
    if not os.path.exists(path):
        os.makedirs(path)
    with open(path+name,'wb') as fp:
        fp.write(requests.get(url,headers=headers).content)
page = int(input("请输入下载页数:"))

for i in range(1,page+1):
    if i == 1:
        url = 'https://www.ypppt.com/moban/zhongguo/'
    else:
        url = 'https://www.ypppt.com/moban/zhongguo/list-'+str(i)+'.html'

    for j in details_urls(url):
        url_ = 'https://www.ypppt.com/article'+j
        print(url_)
        download(downloads_urls(downloads(url_))[0],downloads_urls(downloads(url_))[1])


  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值