栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

xpath怎么提取文本_xpath获取文本值?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

xpath怎么提取文本_xpath获取文本值?

一.安装
pip3 install lxml
二.导入与实例化
#导入
from lxml import etree

#实例化
html=etree.parse(fliepath)    #本地对象
html=etree.HTML(page_text)    #网页对象(page_text为requests请求获得)
三.XPath规则 样本代码
page_text='''

    

  • first item
  • second item
  • third item
  • fourth item
  • fifth item '''
  • 1.所有节点
    result=html.xpath('//*')
    #运行结果
    [, , , , , , , , , , , , , ]
    2.字节点
    #子孙节点//
    result=html.xapth('//li')
    #运行结果
    [, , , , ]
    
    #直接子节点/
    result=html.xapth('//li/a')
    #运行结果
    [, , , , ]
    3.父节点
    result=html.xpath('//li[@]/..')
    result=html.xpath('//div[@]/parent::*')
    #运行结果
    []
     4.文本获取
    result=html.xpath('//li[@]/text()')
    #运行结果
    ['n     ']
    
    result=html.xpath('//li[@]//text()')
    #运行结果
    ['first item', 'fifth item', 'n     ']
    
    result=html.xpath('//li[@]//text()')[0]
    #运行结果
    first item
    
    result=html.xpath('//a[@href="link1.html"]/text()')
    #运行结果
    ['first item']
    
    result=html.xpath('//a[@href="link1.html"]/text()')[0]
    #运行结果
    first item
    
    5.属性匹配
    result=html.xpath('//li[@]')
    #运行结果
    [, ]
    6.属性多值匹配
    #代码
    
  • first item result=html.xpath('//a[contains(@href,"link11.html")]/text()') #运行结果 ['first item'] ''' 1个属性多个值时使用contais contais(@属性名称href,"属性值link1.html或link11.html") '''
  • 7.多属性匹配
    #代码
    
  • first item result=html.xpath('//a[contains(@href,"link11.html") and @name="href"]/text()') #运行结果 ['first item'] ''' 两个属性之间用and连接并置于中括号内 '''
  • 8.属性获取
    result=html.xpath('//li/a/@href')
    #运行结果
    ['link1.html', 'link2.html', 'link3.html', 'link4.html', 'link5.html']
    
    '''
    注意与属性匹配的区别:
    属性匹配 a[@href="link1.html"]
    获取属性 a/@href
    '''
    9.按序选择
    result=html.xpath('//li[1]//text()')
    #运行结果
    ['first item']
    
    result=html.xpath('//li[last()]//text()')
    #运行结果
    ['fifth item', 'n     ']
    
    result=html.xpath('//li[position()<3]//text()')
    #运行结果
    ['first item', 'second item']
    
    result=html.xpath('//li[last()-2]//text()')
    #运行结果
    ['third item']
    10.节点轴选择
    #获取所有祖先节点
    result=html.xpath('//li[1]/ancestor::*')
    #运行结果
    [, , , ]
    
    #获取特定祖先节点
    result=html.xpath('//li/ancestor::ul')
    #运行结果
    []
    
    #获取所有属性值
    result=html.xpath('//li/attribute::*')
    #运行结果
    ['item-0', 'item-1', 'item-inactive', 'item-1', 'item-0']
    
    #获取所有子节点
    result=html.xpath('//li/child::*')
    #运行结果
    [, , , , ]
    
    #获取特定子节点
    result=html.xpath('//li/child::a[@href="link2.html"]')
    #运行结果
    []
    
    #获取所有子孙节点
    result=html.xpath('//ul/descendant::*')
    #运行结果
    [, , , , , , , , , , ]
    
    #获取特定子孙节点
    result=html.xpath('//ul/descendant::li')
    #运行结果
    [, , , , ]
    
    #获取当前节点之后的节点
    result=html.xpath('//li[1]/following::*[2]')
    #运行结果
    []
    
    #获取当前节点之后的所有同级节点
    result=html.xpath('//li[1]/following-sibling::*')
    #运行结果
    [, , , ]
    
    
    '''
    li[1]即第一个li标签
    '''

    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/786605.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号