当前位置: 首页 > news >正文

提供网站空间服务器学技术网站

提供网站空间服务器,学技术网站,一起做网店 17货源网,企业网站推广方案lxml模块是Python的一个解析库,主要用于解析HTML和XML文件。 一、安装导入 使用包管理器安装,在cmd下或编辑器下的控制台,运行: pip install lxml 导入: from lxml import etree 二、xpath基础知识 XPath&#…

lxml模块是Python的一个解析库,主要用于解析HTML和XML文件。

一、安装导入

使用包管理器安装,在cmd下或编辑器下的控制台,运行:

pip install lxml

导入:

from lxml import etree

二、xpath基础知识

XPath(XML Path Language,即XML路径语言)是一种在XML文档中查找信息的语言。它基于XML的树状结构,使用路径表达式来选取XML文档中的节点或节点集

  • //:代表寻找所有(如://div,找到的就是页面所有的div标签)
  • /:代表从根节点找一个
  • @:寻找属性(如://div[@class='123'],找到的是所有class属性值为123的标签)

                也可以寻找属性值://div/@class。找到的是所有div的class属性值

                可以结合节点选择器使用,如 //book[@price>35] 表示选择所有 price 属性值大于35的 book 元素。

  • 当前节点:使用点 . 表示选取当前节点。
  • 父节点:使用两个点 .. 表示选取当前节点的父节点。
  • * 匹配任何元素名。例如,//* 表示选择文档中的所有元素。
  • @* 匹配任何属性名。例如,//book[@*] 表示选择所有具有至少一个属性的 book 元素。
  • 谓词用于进一步筛选满足条件的节点,它被嵌在方括号 [] 中。例如,/root/child[1] 表示选择 root 元素的第一个 child 子元素。
  • 谓词可以使用比较运算符(如 =!=<> 等)、逻辑运算符(如 andornot)和XPath函数(如 last()position()starts-with()contains() 等)。
  • child:: 选择当前节点的子元素节点。
  • attribute:: 选择当前节点的属性。
  • descendant:: 选择当前节点的所有后代节点。
  • parent:: 选择当前节点的父节点。
  • ancestor:: 选择当前节点的所有祖先节点。
  • following-sibling:: 选择当前节点之后的同级节点。
  • preceding-sibling:: 选择当前节点之前的同级节点

三、案例

比如我们有一个数据:

html_data = '''
<div><ul><li class="item-0"><a href="link1.html">first item</a></li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-inactive"><a href="link3.html"><span class="bold">third item</span></a></li><li class="item-1"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></ul>
</div>
'''

我们可以看出,这个数据并不是一个完整的html的结构,但是,xpath需要通过结构路径寻找节点,所以我们需要补全结构,而且要把这个数据解析为element对象才可以通过xpath对其操作,所以我们用到以下语法:

html=etree.HTML(html_data)

etree.HTML():将字符串形式的HTML代码解析为Element对象。该函数会自动补全缺失的标签,并尝试修正HTML代码中的错误。括号中是要解析的数据,html是他解析后返回的element对象。

接下来我们就可以对这个数据进行操作了

案例1:

拿到第二个li的class值:

html.xpath("//li[2]/@class")

案例2:

拿到最后一个li的a标签的href属性值:

html.xpath("//li[last()]/a/@href")

 案例3:

根据属性值获取元素内容
html.xpath("//li/a[@href='link1.html']/text()")

http://www.yayakq.cn/news/324283/

相关文章:

  • 汉中做网站炉石卡牌制作网页
  • 上海网站开发设计ps怎么做网站分隔线
  • 视频网站开发难点常德网站建设优化
  • 中国有哪些网站可以做兼职网站用户告知书
  • 面料 做网站网站建设的关键问题
  • 淘宝内部优惠券网站怎么建设你的网站尚未备案 根据
  • 阳江东莞网站建设wordpress表插件
  • 建设网站可选择的方案云南网红景点
  • 焦作高端网站建设wordpress+编辑器字号
  • 高职图书馆网站建设大赛wordpress手机号码
  • 禹城网站建设电话一级域名建站网站建设行吗
  • 电商平台项目网站优化推广价格
  • qq免费注册网站软件开发入门教程
  • 厦门协会网站建设企业如何做好网络推广
  • 网站开发薪酬查网站是不是用shopify做的
  • 英文网站设计多少钱网站源码怎么获取
  • 做淘宝网站怎么弄东莞市企业网站建设哪家好
  • 外包做网站的要求怎么写智慧园区管理系统
  • 建设网站的技巧如何选取网站关键词
  • 合肥大型网站开发公司微信网站改版价格
  • 东阳市住房与城乡建设局网站网络推广培训职业学校
  • 打开网站提示建设中wordpress cron
  • 广州国外建站模板企业宣传画册制作
  • 王牌网站做代理怎样免费做外贸网站
  • 凡科建站网址网站和网页有什么区别
  • 开发网站怎么挣钱海南开发公司
  • 做基础网站主机要?建立大安全大应急框架
  • 做磨毛布内销哪个网站比较好网站英语
  • 网站的营销方法fuzzz的wordpress模板
  • 网站建设销售渠道怎么开网站 第一步怎么做