美文网首页
XPath常见使用

XPath常见使用

作者: 嫌疑人zx | 来源:发表于2019-02-13 10:55 被阅读4次

XPath表达式


面对较大的文档,你可能需要写很长的XParh表达式,为了避免这一点,两个斜杠线//可以访问到所有的同名元素。列如,//p可以选择所有的p元素,//a可以选择所有的链接。

eg:

 <a href="http://www.iana.org/domains/example">More information...</a> 

只选择链接:

 $x('//a/@href')
 [href="http://www.iana.org/domains/example"]

只选择文字:

 $x('//a/text()')
 ["More information..."]

常见工作


  • 获取id为firstHeading的div下的span的文字
 $x(//h1[@id="firstHeading"]/span/text())
  • 获得id为toc的div下的URL
 $x(//div[@id="toc"]/ul//a/@href)
  • 在任意class包含skin-vector的元素之内,获取h1的text,这两个字符串可能在同一个class内,或不在。
 $x(//*[contains(@class,"ltr") and contains(@class,"skin-vector")]//h1//text())
  • 选择class属性是infoclass的table的第一张图片的URL
 $x(//table[@class="infobox"]//img[1]/@src)
  • 选择class属性是reflist开头的div下面的所有URL链接
 $x(//div[starts-with(@class,"reflist")]//a/@href)
  • 选择div下面的所有URL链接,并且这个div的下一个相邻元素的子元素包含文字References
 $x(//*[text()="References"]/../following-sibling::div//a)
  • 获取所有图片的URL
 $x(//img/@src)

提前应对网页发生的改变


爬取的目标网页位于远程服务器,这意味着,他的HTML会发生改变。XPath表达式就会失效。一些基本原则,可以帮助我们降低表达式失效的概率:

  • 避免使用数组序号!比如:
$x(//*[@id="myid"]/div/div/div[1]/div[2]/div/div[1]/div[1]/a/img)

解决方法:尽量找到离目标标签近的元素,根据元素的id或者class属性,进行抓取。id通常是最靠谱的!

相关文章

  • XPath常见使用

    XPath表达式 面对较大的文档,你可能需要写很长的XParh表达式,为了避免这一点,两个斜杠线//可以访问到所有...

  • Mybatis源码浅析

    Mybatis xml解析流程 Xml解析的常见方式:DOM SAX Xpath ,Mybatis使用的时Xpat...

  • python爬虫之xpath

    一. python使用xpath 使用时先安装 lxml 包 二. xpath简介 XPath,全称 XML Pa...

  • 利用Xpath提取HTML节点

    目录 什么是Xpath? 常见的Xpath中节点及节点间的关系 Xpath路径表达式(节选) 2018.3.28更...

  • lxml结合xpath注意事项

    1.使用Xpath语法,应该使用Element.xpath方法,来执行xpath选择 示例代码如下: 2.获取某个...

  • xpath css选择器 常见的状态码

    xpath xpath 语法-谓语 xpath语法 css选择器 #上面的网址如何让它显示原文件??待解决 常见的状态码

  • python爬虫之XPath解析

    XPath 简介: XPath 是一门在 XML 文档中查找信息的语言 什么是 XPath? XPath 使用路径...

  • Python爬虫(十三)_案例:使用XPath的爬虫

    本篇是使用XPath的案例,更多内容请参考:Python学习指南 案例:使用XPath的爬虫 现在我们用XPath...

  • xpath使用笔记

    xpath学习笔记 xpath简介 xpath 用于在XML文档中通过元素和属性进行导航xpath 使用路径表达式...

  • XPath

    XPath 简介 什么是 XPath?XPath 使用路径表达式在 XML 文档中进行导航XPath 包含一个标准...

网友评论

      本文标题:XPath常见使用

      本文链接:https://www.haomeiwen.com/subject/dtsreqtx.html