Python爬虫基础——XPath语法的学习与lxml模块的使用【优快云】

Python爬虫基础:XPath语法与lxml模块实践
本文介绍了Python爬虫的基础知识,包括HTML、CSS、JavaScript和JQuery等前端技术,重点讲解了XPath语法的学习和lxml模块的使用。XPath是一种在XML文档中查找信息的语言,其语法简单,适用于大部分数据提取需求。文章还提到XPath的索引从1开始,并给出了几个使用案例。最后提到了lxml模块在Python爬虫中的应用。


XPath与正则都是用于数据的提取,二者的区别是:

  • 正则:功能相对强大,写起来相对复杂;
  • XPath:语法简单,可以满足绝大部分的需求,但不能爬取注释代码(反爬的一种手段);

所以,如果你可以根据自己的需要进行选择。

一、首先,我们需要为Google浏览器配置XPath插件:

请自行学习,效果如下:
在这里插入图片描述

二、XPath的语法:

在这里插入图片描述
注意:
XPath的索引从1开始。

三、XPath的案例:
  • 一级分类:
    //h3[@class="classify_c_h3"]/a/text()
    在这里插入图片描述

  • 二级分类:
    //div[@class="classify_list"]/span/a/text()
    在这里插入图片描述

  • 模糊查询:
    //div[contains(@class,"classify_list")]/span/a/text()
    在这里插入图片描述

四、lxml模块的使用
import lxml.etree as le

with open('edu.html', 'r', encoding='utf-8') as f:
    html = f.read()
    # print(html)
    # 转换为XPath对象
    html_x = le.HTML(html)
    # print(html_x)
    # 匹配一二级分类的父标签
    div_x_s = html_x.xpath('//div[@class="classify_cList"]')  # 直接从HTML中取则不用加.
    data_s = []
    for div_x in div_x_s:
        # 一级分类
        category1 = div_x.xpath('./h3/a/text()')[0]  # 记得加.
        # 二级分类
        category2_s = div_x.xpath('./div/span/a/text()')  # 表示从当前节点进行筛选
        data_s.append(
            dict(
                category1=category1,
                category2_s=category2_s
            )
        )
    print(data_s)
    for data in data_s:
        print(data.get('category1'))
        for category2 in data.get('category2_s'):
            print('   ', category2)


为我心爱的女孩~~


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WoLykos

若对你有所帮助,请鼓励我一下~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值