lxml etree xpath-阿里云开发者社区

开发者社区> 罗兵> 正文

lxml etree xpath

简介: from lxml import etree #####################基本用法: ##################### html = ''' 登录 用户: 密码: ''' # 生成DOM dom = etree.
+关注继续查看

 

from lxml import etree

#####################
基本用法:

#####################
html = '''
<h1 class="header">登录</h1>
<form action="/login" method="post">
    <label for="username">用户: </label><input type="text" name="username" />
    <label for="password">密码:</label><input type="password" name="password" />
    <input type="submit" value="Submit" />
</form>'''

# 生成DOM
dom = etree.HTML(html)

# 取内容 /text()
contents = dom.xpath('//h1[@class="header"]/text()')
print(contents)

# 取属性 /@attrib
attribs = dom.xpath('//form/label[@for="username"]/@for')
print(attribs)




##
###################
复杂用法:
#####################
html2 = ''' 
<div class="content">
==> 有相同字符开头的属性的标签:
<p id="test-1">需要的内容1</p>
<p id="test-2">需要的内容2</p>
<p id="test-default">需要的内容3</p>
</div>
<div class="question">
==> 签嵌套标签:
<p id="class3">美女,
      <font color="red">你的微信号是多少?</font>
</p>
</div>
'''

dom = etree.HTML(html2)

# 取有相同字符开头的属性的标签的内容 starts-with(@attrib, "abcd")
contents2 = dom.xpath('//p[starts-with(@id, "test")]/text()')
print(contents2)

# 取标签嵌套标签的所有内容 xpath('string(.)')
contents3 = dom.xpath('//div[@class="question"]/p')[0].xpath('string(.)')
contents3
= contents3.replace('\n', '').replace(' ', '')
print(contents3)

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Vue 集成腾讯地图基础api Demo集合(基础地图引入与展示模块,地址逆解析,3D/2D切换 ,位置服务,mark标记)
Vue 集成腾讯地图基础api Demo集合(基础地图引入与展示模块,地址逆解析,3D/2D切换 ,位置服务,mark标记)
7 0
Vue 仿钉钉流程图(流程节点绘制 vue+Ant【如果用其他UI库需要替换几个组件】 附 demo)
# [这里是git地址](https://gitee.com/xiaoyaoluntian/imitating-dingding-flow-chart/tree/comdemo/)
6 0
数据类型-数值和字符串 | 学习笔记
快速学习数据类型-数值和字符串。
5 0
作用域及作用域链 | 学习笔记
快速学习作用域及作用域链。
5 0
动手实战-初识上云基础,动手实操ECS云服务器新手上路
云服务器(Elastic Compute Service, 简称ECS),是一种简单高效,处理能力可以弹性伸缩的计算服务
15 0
代码注释 | 学习笔记
快速学习代码注释。
9 0
求数组元素的和 | 学习笔记
快速学习求数组元素的和。
6 0
【Elastic Engineering】Kibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana
Kibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana
10 0
函数的返回值 | 学习笔记
快速学习函数的返回值。
6 0
函数当作参数2 | 学习笔记
快速学习函数当作参数2。
6 0
+关注
罗兵
数学专业。擅数据分析,涉stock、lotto。了解随机过程分析、神经网络。涉web前端、后端。了解vba、js,稍擅python
251
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载