xpath 第一个元素_XPath基础

a3e4198dd267715fb6f2468416fb25c8.png

        XPath即XML(EXtensible Markup Language)路径语言(XML Path Language),它是一种用来确定xml文档(html属于xml)中某部分位置的语言(html主要是为了显示信息,xml为了传输信息)。

        xml文档是由一系列节点构成的树,例如:

            
            Hello World            Click here

xml文档有多种类型,最常用类型有以下几种:

  • 根节点:整个文档树的根

  • 元素节点:html、body、div、p、a

  • 属性节点:href

  • 文本节点:Hello World、Click here

节点间的关系有以下几种:

  • 父子:body是html的子节点,p和a是div的子节点,反之,div是父节点

  • 兄弟:p 和 a 是兄弟节点

  • 祖先/后裔:body、div、p、a都是html的后裔节点,反过来html是body、div、p、a的祖先节点

常用基础语法

表达式描述
/选中文档的根(root)
.选中当前节点
..选中当前节点的父节点
ELEMENT选中子节点中所有ELEMENT元素节点
//ELELMENT选中后代节点中所有ELEMENT元素节点
*选中所有元素子节点
text()选中所有文本子节点
@ATTR选中名为ATTR的属性节点
@*选中所有属性节点
[谓语]用来查找某个特定的节点或者包含某个特定值的节点

实例,比如创建以下html文档用于演示。

<html>    <head>        <base href='http://example727.com/' />        <title>杂货铺727pythontitle>    head>    <body>        <div>            <p>Hello Worldp>            <a id="logo" href="/index.html" title="杂货铺727python" style="float:left;">杂货铺727pythona>        div>    body>html>
>>> response = HtmlResponse(url='http://example.com')# /:描述一个从根开始的绝对路径>>> response.xpath('/html')[\n\t\n\t...'>]# E1/E2:选中E1子节点中的所有E2>>> response.xpath('/html/body/div/a')[# //E:选中文档中所有E,无论在什么位置>>> response.xpath('//a')[# E1//E2:选中E1后代节点中所有E2,无论在后代中什么位置>>> response.xpath('html//title')[]#  E/text():选择E的文本子节点>>> response.xpath('html//title/text()')[]# E/*:选中E的所有元素子节点>>> response.xpath('html/head/*')['>, ]# */E:选中孙节点中的所有E>>> response.xpath('html/*/title')[]# E/@ATTR:选中E的ATTR属性>>> response.xpath('//a/@id')[]# //@*:选中E的所有属性>>> response.xpath('//base/@*')[]# .:选中当前节点,用来描述相对路径>>> sel = response.xpath('//div')>>> sel["logo" href=]>>>sel.xpath('.//a')["logo" href=# ..:选中当前节点的父节点>>> response.xpath('//a/..')[\n\t

Hello World

...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值