利用xpath爬取51PPT页面的PPT

本文介绍了一种使用Python的requests库和lxml库抓取指定网站上的PPT模板的方法。通过解析网页源代码,获取每个PPT模板的链接和名称,并下载到本地目录。此过程涉及多次请求和数据解析,最终实现自动化批量下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

具体代码如下:

import requests
from lxml import etree
import os
if __name__=="__main__":
    if not os.path.exists('./pptss'):
        os.mkdir('./pptss')
    headers={
        'Use-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0'
        }
    url='http://www.51pptmoban.com/ppt/'
    
    response=requests.get(url=url,headers=headers)
    
    page_text=response.text
    #print(page_text)
    tree=etree.HTML(page_text)
    a_list=tree.xpath('//div[@class="pptlist"]/dl/dd')
    #list=[]
    for li in a_list:
        li_url = 'http://www.51pptmoban.com'+li.xpath('./div/a/@href')[0]
        li_name=li.xpath('./div/a/img/@alt')[0]+'.rar'
        li_name=li_name.encode('iso-8859-1').decode('gbk') 
        #print(li_url,li_name)
        #list.append(li_url)
    #print(list)
      
        response=requests.get(url=li_url,headers=headers)
        response.encoding="utf-8"
        xia_text=response.text
        xia_tree=etree.HTML(xia_text)
            #print(xia_text)
        xiazai_list=xia_tree.xpath('//div[@class="ppt_xz"]/a')
        for lii in xiazai_list:
            xiazai_url='http://www.51pptmoban.com'+lii.xpath('./@href')[0]
            #print(xiazai_url)

            final_text=requests.get(url=xiazai_url,headers=headers).text
            final_tree=etree.HTML(final_text)
            #print(final_text)
            final_list=final_tree.xpath('//div[@class="down"]/a')
            for fi in final_list:
                final=fi.xpath('./@href')[0]
                fin='/'+final.split("/")[-2]+'/'+final.split("/")[-1]
                #print(fin)
            final_url='http://www.51pptmoban.com/e/DownSys'+fin
            file_ppt=requests.get(url=final_url,headers=headers).content
                #print(final_url)
            xia_path='./pptss/'+li_name
            with open(xia_path,'wb') as fp:
                fp.write(file_ppt)
                print(li_name,'下载成功!!!')

运行结果为:
在这里插入图片描述
在这里插入图片描述

### Python 使用 XPath 爬取网页教程 #### 准备工作 为了使用XPath进行网页爬取,需要安装`requests`用于发送HTTP请求,以及`lxml`库来处理和解析HTML或XML文档。 ```bash pip install requests lxml ``` #### 发送HTTP请求并获取网页内容 利用`requests.get()`函数发起GET请求到目标网站,并通过`.content`属性获得响应的内容。这一步骤是整个过程的基础[^2]。 ```python import requests url = 'http://example.com' response = requests.get(url) html_content = response.content ``` #### 初始化XPath解析器 创建一个`etree.HTMLParser`对象并将之前得到的HTML字符串传递给它;接着调用`etree.parse()`方法完成DOM树构建。最后准备好了执行XPath查询所需的环境[^4]。 ```python from lxml import etree parser = etree.HTMLParser() tree = etree.fromstring(html_content, parser=parser) ``` #### 编写XPath表达式定位所需元素 根据实际需求编写合适的XPath表达式以精确定位想要抓取的数据项。这里给出几个常见场景下的示范: - 获取所有链接地址: ```python links = tree.xpath('//a/@href') print(links) ``` - 提取出特定类名下所有的文本内容: ```python texts = tree.xpath("//div[@class='specific-class']/text()") print(texts) ``` - 查找具有指定ID属性的img标签内的src值(即图片URL): ```python image_urls = tree.xpath("//img[@id='target-image-id']/@src") print(image_urls) ``` 以上便是基于PythonXPath实现简单网页爬虫的主要流程概述[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值