第四讲xpath

这篇博客介绍了XML和HTML的区别,强调了XML的严格语法。重点讲解了XPath的概念和语法,包括选取节点、谓语、通配符和选取路径。还提到了在Python中使用lxml模块处理XML和HTML文件的方法,特别是利用xpath方法筛选内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,什么是xml??

定义:可扩展标记性语言
特点:xml自描述结构–>半结构化数据
作用:设计宗旨传输数据–>可作为配置文件

二、xml和html的区别:

1,语法要求不同---->xml严格

html–>不区分大小写–>有时省却尾标签–>不带属性值–>属性可不加引号
xml–>区分大小写–>不能省却标签—>有自闭标签(无内容,只属性) –>必须带属性值–>属性必须引号

2,作用不同:

html -->设计宗旨–>显示数据 更好显示数据
xml–>设计宗旨–>传输数据

3,标记不同:

xml–>无固定标记
html–>标记固定 无自定义

1,什么是xpath?

xpath-->筛选页面元素的语法 	

2,xml|html名词—>元素、标签、属性、内容
3,xml和html的解析方法:
dom–>把xml文档变成dom树–>便于成型数据(树)–>处理xml文档–>文档大时–>出现问1耗内存–>问2解析速度会非常慢
sax–>当文档大时,dom无效率用–>满足事件驱动器–>解析器才会解析–>内存中加载的xml文档不会太大

4,xpath语法:

  **(1)选取节点:**

nodename–>选取此标签及其所有字标签。
1、 /–>从根节点开始选取。
2、//–>从任意节点开始,不考虑他们的位置
3、//book–不管book位置,在xml中取出所有的book标签。
4、.–当前节点开始找
5、…–从父节点
6、@–选取属性
7、text()–选取内容

(2)谓语:起限定作用,限定它前面的内容

[]写在谁后面,就限定谁,一般用于限定元素或标签。//book[@class=‘abc’]
常见的谓语:
[@class]–选取class
[@class=‘abc’]–选取class属性为abc的节点
[contains(@href,‘baidu’)]–选取href属性包含baidu的标签

    [1]--选取第一个
    [last()]--选取最后一个
    [last()-1]--选取倒数第二
    [position()>2]--跳过前两个。

(3)通配符

   *--匹配任意节点 		
 @*--匹配任意属性

(4)选取若干路径

| —左边和右边的xpath选的内容都要—and

5、lxml模块----python处理xml和html的模块。

(1)解析字符创类型xml。 from lxml import etree
text=’’’
html页面内容 ‘’’ tree = etree.HTML(text)—返回值就是一个element对象 #element对象有xpath方法,可以通过xpath表达式来筛选内容。
#选取class属性为item-1的li下面的a标签的内容 a_contents =
tree.xpath(’//li[@class=“item-1”]/a/text()’)
将element对象变成字符串的方法 # html_str = etree.tostring(tree,pretty_print=True).decode(‘utf-8’) #
print(type(html_str))
#elment对象xpath放来筛选,返回值都是一个list。 #xpath表达式最后一个是一个元素(标签),list中都是elment元素
#xpath表达式最后一个是属性,list都是属性字符串 #xpath表达式最后一个是内容,list都是内容字符串

(2)解析xml或者html文件:

from lxml import etree #parse方法是按照xml的方式来解析,如果语法出问题,就会报错。 html
= etree.parse(‘demo.html’) # print(html)#_ElementTree li_texts = html.xpath(’//li/a/text()’) print(li_texts)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值