python数据XPath使用案例详解
目录
- XPath
- XPath使用方法
- xpath解析原理:
- 安装lxml
- 案例—58二手房
XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
XPath使用方法
xpath解析原理:
1.实例化一个etree的对象,且需要将被解析的页面源代码数据加载到该对象中
2.调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获
安装lxml
pip install -i https://mirrors.aliyun.com/pypi/simple/ lxml
from lxml import etreetree = etree.parse('./tree.html')#从本地加载源码,实例化一个etree对象。必须是本地的文件,不能是字符串tree = etree.HTML(源码)#从互联网加载源码,实例化etree对象#/ 表示从从根节点开始,一个 / 表示一个层级,//表示多个层级r = tree.xpath('//div//a')#以列表的形式返回div下的所有的a标签对象的地址r = tree.xpath('//div//a')[1]#返回div下的第二个a标签对象地址r = tree.xpath('//div[@class="tang"]')#以列表的形式返回tang标签地址r = tree.xpath('//div[@class="tang"]//a') #以列表的形式返回tang标签下所有的a标签地址#获取标签中的文本内容r = tree.xpath('//div[@class="tang"]//a/text()') #以列表的形式返回所有a标签中的文本#获取标签中属性值r = tree.xpath('//div//a/@href')##以列表的形式返回所有a标签中href属性值
tree.html
xpaht测试 - 锐客网 百里守约
前程似锦
前程似锦2
#后面改了名字以梦为马
- 清明时节
- 秦时明月
- 汉时关
案例—58二手房 将页面中的房源名称解析出来,即将title值解析出来就行
文章图片
思路
获取房源名称所在的url,并获取其响应数据
数据解析,构造xpath表达式。提取目标数据
import requestsfrom lxml import etreeurl = "https://bj.58.com/ershoufang/p1/"headers={'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36'}pag_response = requests.get(url,headers=headers,timeout=3).text#实例化一个etree对象tree = etree.HTML(pag_response)r = tree.xpath('//span[@class="content-title"]/text()') #获取所有//span标签为"content-title"的文本内容print(r)
Tips:我们使用xpath进行数据解析时,不能直接看元素就进行构造xpath表达式,以为很多情况下从浏览中看的元素结构和爬取下来的源码结构不一样。所以正确方法是先将源码爬下来再观察进行构造xpath。
如下浏览器中的元素结构和爬取的元素结构就不一样。如果按照浏览器汇总的元素来构造xpath表达式,则不会解析成功!
文章图片
【python数据XPath使用案例详解】以上就是python数据XPath使用案例详解的详细内容,更多关于python数据XPath使用的资料请关注脚本之家其它相关文章!
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 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青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则