lxml etree xpath

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)
时间: 2024-08-11 13:35:49

lxml etree xpath的相关文章

翻译:lxml.etree教程

本文翻译自:http://lxml.de/tutorial.html, 作者:Stefan Behnel 这是一个关于使用lxml.etree进行XML处理的教程.它简要介绍了ElementTree API的主要概念,以及一些简单的增强功能,使你的编程更容易. 有关API的完整参考,请参考生成的API文档. 内容: ? 元素类 · 元素是列表 · 元素以属性为特征 · 元素包含文本 · 使用XPath查找文本 · 树迭代 · 序列化 ? ElementTree类 ? 从字符串和文件解析 · fr

lxml结合xpath语法实例一(数据提取)

我本人比较喜欢蜡笔小新,这个实例批量下载蜡笔小新图片 源码分析:所有图片包含在class为searchbqppdiv tagbqppdiv的div下的a标签的src属性中 思路:获取源码,提取数据,下载图片 目标地址:https://www.fabiaoqing.com/ requests+lxml 只提取一页的数据 import requests,lxml images_url='https://www.fabiaoqing.com/search/search/keyword/%E8%9C%A

python小白学习记录 运用lxml的xpath解析html文件

1 from lxml import etree 2 text = "<div><p>nmsl</p><span>nmsl</span></div>" 3 def htmlstree(text): 4 html = etree.HTML(text) 5 result = etree.tostring(html) 6 print(result) 7 return result.decode('utf-8') 8 #解

lxml.etree去除子节点

去除etree中的某个子节点有两种方法: 1.parentnode.remove(node) 2.etree.strip_elements(html, 'element_name', with_tag=True/False) 但是在实际使用的时候如果要删除的node.tail不为空,则会把node.tail也删除掉,导致不必要的丢失,解决办法如下: parent = node.getparent() if parent is not None: parent_text = re.sub('\s'

lxml结合xpath注意事项

使用Xpath语法,应该使用Element.xpath方法,来执行xpath选择,示例代码如下: trs = html.xpath("//tr[position()>2]") xpath函数返回的永远是一个列表 2.获取某个标签的属性: href = html.xpath("//a/@href") 3.获取文本 , 通过xpath下的text()函数: address = tr.xpath("./td[4]/text()")[0] 4.在某

关于爬虫中常见的两个网页解析工具的分析 —— lxml / xpath 与 bs4 / BeautifulSoup

读者可能会奇怪我标题怎么理成这个鬼样子,主要是单单写 lxml 与 bs4 这两个 py 模块名可能并不能一下引起大众的注意,一般讲到网页解析技术,提到的关键词更多的是 BeautifulSoup 和 xpath ,而它们各自所在的模块(python 中是叫做模块,但其他平台下更多地是称作库),很少被拿到明面上来谈论.下面我将从效率.复杂度等多个角度来对比 xpath 与 beautifulsoup 的区别. 效率 从效率上来讲,xpath 确实比 BeautifulSoup 高效得多,每次分步

Python通过lxml库遍历xml通过xpath查询(标签,属性名称,属性值,标签对属性)

xml实例: 版本一: <?xml version="1.0" encoding="UTF-8"?><country name="chain"><provinces><heilongjiang name="citys"><haerbin/><daqing/></heilongjiang><guangdong name="city

Python爬虫利器三之Xpath语法与lxml库的用法

前面我们介绍了 BeautifulSoup 的用法,这个已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法.如果大家对 BeautifulSoup 使用不太习惯的话,可以尝试下 Xpath. 参考文档: lxml python 官方文档 XPath语法参考 w3school 安装 pip install lxml 利用 pip 安装即可 XPath语法 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在

python爬微信公众号前10篇历史文章(3)-lxml&amp;xpath初探

理解lxml以及xpath 什么是lxml? python中用来处理XML和HTML的library.与其他相比,它能提供很好的性能, 并且它支持XPath. 具体可以查看官方文档->http://lxml.de/index.html 结构化数据: XML, JSON 非结构化数据: HTML文本是最常见的数据格式,因为一般我们需要的关键信息并非直接可以得到,需要进行对HTML的解析查找,甚至一些字符串操作才能得到,所以归类于非结构化的数据处理中. 常见解析方式如下: XPath.CSS选择器.