python——xpath

1、xpath简介

  • xpath是语法不是解析库
  • xpath语法:
内容语法
节点/
跨节点//
精确的标签//a[@属性=“属性值”]
标签包裹的内容/ text()
属性@href
模糊匹配//div[contain(@class,“a”)]
下一个节点(兄弟关系)即取兄弟标签//head/following-sibling:: *[1]
  • 注意事项:
  1. xpath 返回数据类型为列表
  2. xpath下标从1开始,只能取平级关系的标签

2. 安装

#开始安装支持解析html和XML的解析库lxml
pip install lxml

3. 数据转换

转化为解析类型

from lxml import etree
import requests
url = "http://news.baidu.com"
headers = {"User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"}
data = requests.get(url,headers = headers).content.decode("utf-8")

# 转化为解析类型
X_data = etree.HTML(data)

4. 调用xpath方法

# 直接从网页复制粘贴xpath
X_data.xpath('//*[@id="header"]/h1/text()')

# 根节点的方法
X_data.xpath('/html/head/title/text()')

# 跨节点的方法
X_data.xpath("//a/text()")

# 精确的标签
X_data.xpath('//a[@mon="r=1"]/text()')

# 获取属性
X_data.xpath('//a[@mon="r=1"]/@target')

# 模糊匹配
X_data.xpath('//a[contains(@mon,"r")]/text()')

# 取兄弟标签
X_data.xpath("//head/following-sibling::*[0]/text()")
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值