Python爬虫之xlml解析库

发表于:2017-8-07 10:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:invisibleYI    来源:博客园

  1.Xpath
  Xpath是一门在XML中查找信息的语言,可用来在XML文档中对元素和属性进行遍历。XQuery和xpoint都是构建于xpath表达之上
  2.节点
  父(parent),子(children),兄弟(sibling),先辈(ancetstor),后代(Decendant)
  3.选取节点
  路径表达式
  谓语
  谓语用来查找某个特定的节点或者包含某个指定的值的节点
  谓语被嵌在方括号中
  选取未知节点(通配符)
  *匹配任何元素节点
  @*匹配任何属性节点
  node()匹配任何类型的节点
  4.lxml用法
#!/usr/bin/python
#_*_coding:utf-8_*_
fromlxmlimportetree
text='''
<div>
<ul>
<liclass="item-0"><ahref="link1.html">firstitem</a></li>
<liclass="item-1"><ahref="link2.html">seconditem</a></li>
<liclass="item-inactive"><ahref="link3.html">thirditem</a></li>
<liclass="item-1"><ahref="link4.html">fourthitem</a></li>
<liclass="item-0"><ahref="link5.html">fifthitem</a>
</ul>
</div>
'''
#html=etree.HTML(text)#html对象,存储在地址中,有自动修正功能
#result=etree.tostring(html)#将html对象转化为字符串
html=etree.parse('hello.html')
#result=etree.tostring(html,pretty_print=True)
#printresult
printtype(html)
result=html.xpath('//li')
printresult
printlen(result)
printtype(result)
printtype(result[0])
printhtml.xpath('//li/@class')#获取li标签下的所有的class
printhtml.xpath('//li/a[@href="link1.html"]')#获取li标签下href为link1的<a>标签
printhtml.xpath('//li//span')#获取li标签下所有的span标签
printhtml.xpath('//li[last()-1]/a')[0].text#获取倒数第二个元素的内容
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号