时间:2021-05-22
今天说的则是使用另外一种扩展库 lxml 来对网页完成解析。同样的,lxml 库能完成对 html、xml 格式的文件解析,并且能够用来解析大型的文档、解析速度也是相对比较快的。
要掌握 lxml 的使用,就需要掌握掌握 xpath 的使用方法,因为 lxml 扩展库就是基于 xpath 的,所以这一章的重点主要还是对 xpath 语法使用的说明。
按照节点的方式获取元素
# xpath() 使用标签节点的方式获取元素print html.xpath('/html/body/p')# [<Element p at 0x2ebc908>, <Element p at 0x2ebc8c8>, <Element p at 0x2eb9a48>]print html.xpath('/html')# [<Element html at 0x34bc948>]# 在当前节点的子孙节点中查找 a 节点print html.xpath('//a')# 在当前节点的子节点中查找 html 节点print html.xpath('/html')按照筛选的方式获取元素
'''根据单一属性获取元素'''# 获取子孙节点中,属性 class=bro 的 a 标签print html.xpath('//a[@class="bro"]')# 获取子孙节点中,属性 id=link3 的 a 标签print html.xpath('//a[@id="link3"]')'''根据多个属性获取元素'''# 获取class属性等于sister,并且id等于link3的a标签print html.xpath('//a[contains(@class,"sister") and contains(@id,"link1")]')# 获取class属性等于bro,或者id等于link1的a标签print html.xpath('//a[contains(@class,"bro") or contains(@id,"link1")]')# 使用 last() 函数,获取子孙代的a标签的最后一个a标签print html.xpath('//a[last()]')# 使用 1 函数,获取子孙代的a标签的第一个a标签print html.xpath('//a[1]')# 标签筛选,position()获取子孙代的a标签的前两个a标签print html.xpath('//a[position() < 3]')'''使用计算的方式,获取多个元素'''# 标签筛选,position()获取子孙代的a标签的第一个与第三个标签# 可以使用的计算表达式:>、<、=、>=、<=、+、-、and、orprint html.xpath('//a[position() = 1 or position() = 3]')获取元素的属性与文本
'''使用@获取属性值,使用text() 获取标签文本'''# 获取属性值print html.xpath('//a[position() = 1]/@class')# ['sister']# 获取标签的文本值print html.xpath('//a[position() = 1]/text()')到此这篇关于python 网页解析器掌握第三方 lxml 扩展库与 xpath 的使用方法的文章就介绍到这了,更多相关python lxml 扩展库与 xpath内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
python网页解析器 1、常见的python网页解析工具有:re正则匹配、python自带的html.parser模块、第三方库BeautifulSoup(
网页内容解析。利用网络爬虫抓取的网页,主要是静态网页。为提高索引的精确度,本系统采用了第三方的HTMLParser解析网页。其使用方法是继承HTMLParser
前言:在使用pycharm学习python的时候,经常需要第三方库,没有第三方库程序就会报错,pycharm也会提醒你要安装所需要的库,安装第三方库的时候往往就
前言本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语
lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高XPath,全称XMLPathLanguage,即XM