- Python爬虫基础——HTML、CSS、JavaScript、JQuery网页前端技术
- Python爬虫基础——正则表达式
- Python爬虫基础——re模块的提取、匹配和替换
- Python爬虫基础——XPath语法的学习与lxml模块的使用【优快云】
- Python爬虫进阶——JsonPath使用案例
- Python爬虫进阶——urllib模块使用案例【淘宝】
- Python爬虫进阶——Request对象之Get请求与URL编码【英雄联盟吧】
- Python爬虫进阶——Request对象之post请求案例分析【百度翻译】
- Python爬虫实战—— Request对象之header伪装策略
- Python爬虫实战——反爬策略之代理IP【无忧代理】
- Python爬虫实战——反爬策略之模拟登录【优快云】
- Python爬虫实战——反爬机制的解决策略【阿里】
- 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)
为我心爱的女孩~~
Python爬虫基础:XPath语法与lxml模块实践

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

被折叠的 条评论
为什么被折叠?



