Python爬虫基础讲解(七)(xpath的语法)
Python爬虫、数据分析、网站开发等案例教程视频免费在线观看
https://space.bilibili.com/523606542
xpath语法 XPath使用路径表达式来选取XML文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
下面列出了最有用的表达式:
文章图片
在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:
文章图片
选取未知节点
文章图片
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
文章图片
案例
文章图片
import parsel # str --> Selector对象具有xpath方法
提取到的数据返回一个列表html_str = """
-
第一个
<1iclass="item-2个>J学言
第二个
-
第三个
-
第四个
-
第五个
# 1、转换数据类型
# data = https://www.it610.com/article/parsel.Selector(html_str).extract()
# parsel能够把缺失的html标签补充完成
data = parsel.Selector (html_str)# parsel能够把缺失的html标签补充完成
# 2、解析数据--list类型
# print(data)
# 2、1从根节点开始,获取所有标签
result = data.xpath(' /html/body/ div/ul/li/a').extract()
# 2、2跨节点获取所有标签
result = data. xpath('/ /a').extract()
# 2、3选取当前节点――使用场景:需要对选取的标签的下一级标签进行多次提取
result = data.xpath('//ul')
result2 = result.xpath(' ./li').extract()#提取当前节点下的标签
result3 = result.xpath(' ./li/a').extract()#提取当前节点下的标签
# 2、4选取当前节点的父节点,获取父节点的class属性值
result = data.xpath(' //a')
result4 = result.xpath('../@class').extract()
# 2、5获取第三个 标签的节点(两种方法)
result = data. xpath('//li[3]').extract()
result = data. xpath(' / /1i')[2].extract()
# 2、6 通过定位属性的方法获取第四个标签
result = data. xpath(' / / a [@href="https://www.it610.com/article/link4.html"]’).extract()
#2、7用属性定位标签,获取第四个标签包裹的文本内容
result = data.xpath('//a[@href="https://www.it610.com/article/link4.html"]/text()' ). extract()
#2、8获取第五个标签的href属性值
result = data. xpath(' / /1i[5]/a/@href').extract(#了解模糊查询
result = data.xpath('//li[contains(@class,"it")]’).extract ()
#同时获取 标签的属性以及标签的文本
# result = data.xpath('//li/@class|//a/text()').extract()print (result)
如何选取多个标签?
【Python爬虫基础讲解(七)(xpath的语法)】通过在路径表达式中使用“”运算符,您可以选取若干个路径。(逻辑运算符)
小结
- xpath的概述XPath (XML Path Language),解析查找提取信息的语言
- xpath的节点关系:根节点,子节点,同级节点
- xpath的重点语法获取任意节点://
- xpath的重点语法根据属性获取节点:标签[@属性=’值’]
- xpath中获取节点的文本:text )
- xpath的获取节点属性值:@属性名
推荐阅读
- python学习之|python学习之 实现QQ自动发送消息
- 逻辑回归的理解与python示例
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- Python基础|Python基础 - 练习1
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- Python(pathlib模块)
- python青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则
- Java|Java基础——数组
- Python数据分析(一)(Matplotlib使用)