xpath解析栗子

环境安装

pip install lxml

etree对象实例化

# 本地文件:
tree = etree.parse(文件名)
tree.xpath("xpath表达式")
# 网络数据:
tree = etree.HTML(网页内容字符串)
tree.xpath("xpath表达式")

xpath表达式

  • /(单斜杠):表示的是从根节点开始定位,表示的是一个层级。
  • //(双斜杠):表示的是多个层级。可以表示从任意位置开始定位。
  • 属性定位://div[@class=‘song’] tag[@attrName=“atrrValue”]
  • 索引定位://div[@class=‘song’] /p[3] (PS:索引是从1开始的)
  • 取文本:
    /text() 获取的是标签中直系的文本内容
    //text() 标签
  • 取属性:
    /@attrName
属性定位:
    #找到class属性值为acct的div标签
    //div[@class="acct"] 
层级&索引定位:
    #找到class属性值为acct的div的直系子标签ul下的第二个子标签li下的直系子标签a
    //div[@class="acct"]/ul/li[2]/a
逻辑运算:
    #找到href属性值为空且class属性值为acct的a标签
    //a[@href="" and @class="acct"]
模糊匹配:
	#模糊查询class属性含有a的div标签
    //div[contains(@class, "a")]
    #找到class属性值以ac开头的div标签
    //div[starts-with(@class, "ac")]
取文本:
    # /表示获取某个标签下的文本内容
    # //表示获取某个标签下的文本内容和所有子标签下的文本内容
    //div[@class="song"]/p[1]/text()
    //div[@class="tang"]//text()
取属性:
    //div[@class="tang"]//li[2]/a/@href
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值