xpath简介

  1,使用路径表达式在xml和html中解析
    2,包含标准函数路(所有库支持的xpath语法一致)
      3,W3C标准

节点:

 <body>                        第一个节点: <html>
<a> <head> 与 <body>;<a> 与<div>;<h1>与<h2> 为同胞节点
<div> <h1> 是</span> 的父节点,同理<span> 是<h1> 的子节点
<h1> 因为<span> 是<h1> 的子节点,<h1>是<div>的子节点,所以<div>是<span>
<span> 的先辈节点,同理,<span>是<div>的子孙节点
</span>
</h1>
<h2>
</h2>
</div>
</a>
</body>

基本语法:

  举例元素标签为artical标签

  一:

  artical 选取所有artical元素的子节点

/artical 选取根元素artical
        artical/a 选取所有属于artical的子元素a元素
        //div    选取所有div 子元素,无论div在任何地方
        artical//div  选取所有属于artical的div 元素,无论div元素在artical的任何位置
        //@class 选取所有名为class 的属性的
    二:谓语    
        /artical/div[1]   选取所有属于artical 子元素的第一个div元素
        /artical/div[last()]  选取所有属于artical子元素的最后一个元素
        /artical/div[last()-1] 选取所有属于artical子元素的倒数低2个元素
        //div[@lang]   选取所有拥有属性为lang的元素
        //div[@lang="eng"] 选取所有div下lang属性为eng的元素

三:
        /div/* 选取所有属于div元素的所有子节点
        //*    选取所有元素
        //div[@*]   选取所有带属性的title元素
        //div/a|//div/p   选取所有div元素的a和p 元素
        //span | //ul   选取文档中所有span和ul 的元素
        artical/div/pl|//span  选取所有div下的pl和文档中所有span
注意事项:
    1) 按照审查元素的写法不一定正确,要按照网页源码的才行
        因为不一样,网页源码才是你看到的
    2) 浏览器有自带的复制xpath功能,审查元素你试试,不同浏览器不同方法
    3) xpath有c的速度,所以按照[@class=""]准确性较高

Scrapy基础(三) ------xpath基础的更多相关文章

  1. linux基础三---网络基础&软件包管理

    一 ifconfig:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址. ifconfig eno16777736 down/up   关闭/开启 eno16777736 网卡 ifconf ...

  2. C++学习基础三——迭代器基础

    迭代器分为两种:一种是iterator,另一种是const_iterator.两者都可进行访问容器中的元素,不同之处是:(1)const_iterator类型只能用于读取容器内的元素,不能更改其值:而 ...

  3. 爬虫开发7.scrapy框架简介和基础应用

    scrapy框架简介和基础应用阅读量: 1432 scrapy 今日概要 scrapy框架介绍 环境安装 基础使用 今日详情 一.什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数 ...

  4. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

  5. Bootstrap <基础三十二>模态框(Modal)插件

    模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 如果您想要单独引用该插件的功能,那么您需要引用  ...

  6. Bootstrap <基础三十一>插件概览

    在前面布局组件中所讨论到的组件仅仅是个开始.Bootstrap 自带 12 种 jQuery 插件,扩展了功能,可以给站点添加更多的互动.即使不是一名高级的 JavaScript 开发人员,也可以着手 ...

  7. Bootstrap <基础三十>Well

    Well 是一种会引起内容凹陷显示或插图效果的容器 <div>.为了创建 Well,只需要简单地把内容放在带有 class .well 的 <div> 中即可.下面的实例演示了 ...

  8. Bootstrap<基础三> 排版

    Bootstrap 使用 Helvetica Neue. Helvetica. Arial 和 sans-serif 作为其默认的字体栈. 使用 Bootstrap 的排版特性,您可以创建标题.段落. ...

  9. jdbc基础 (三) 大文本、二进制数据处理

    LOB (Large Objects)   分为:CLOB和BLOB,即大文本和大二进制数据 CLOB:用于存储大文本 BLOB:用于存储二进制数据,例如图像.声音.二进制文件 在mysql中,只有B ...

随机推荐

  1. ftp的自动部署以及添加虚拟账户的脚本

    #!/bin/bash #本脚本为自动化安装vsftp,使用虚拟用户认证登录ftp上传下载文件 echo =============================================== ...

  2. linux+jenkins+jmeter+ant持续集成

    0.安装jdk 1.下载jdk8 登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151 ...

  3. selenium+python-autoit文件上传

    前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...

  4. python 读取指定div的内容

    # -*- coding:utf-8 -*- from bs4 import BeautifulSoup import urllib.request import re # 如果是网址,可以用这个办法 ...

  5. tp5.0整合七牛云图片上传

    转:https://www.cnblogs.com/adobe-lin/p/7699638.html 这里以上传图片为例 上传其他文件也是大同小异 使用composer安装gmars/tp5-qini ...

  6. 十六进制的ASCII码 "\u6cf0\u56fd" 解码成unicode

    转码方法: C#: string a = "\u6cf0\u56fd"; string b = Encoding.UTF8.GetString(Encoding.UTF8.GetB ...

  7. some advice in work

    给研究生的建议 文档抄袭自:北航大佬 Fei-Fei Li:De-Mystifying Good Research and Good Papers (repost) 如何提升你的能力?给年轻程序员的几 ...

  8. Spring MVC基础知识整理➣Spring+SpringMVC+Hibernate整合操作数据库

    概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibern ...

  9. python之 可迭代 迭代器 生成器

    0. 1.总结 (1) (a)iterable 可迭代(对象) 能力属性 指一个对象能够一次返回它的一个成员,for i in a_list 而不需要通过下标完成迭代. 例子包括所有序列类型(list ...

  10. 一起学Hadoop——MapReduce原理

        一致性Hash算法. Hash算法是为了保证数据均匀的分布,例如有3个桶,分别是0号桶,1号桶和2号桶:现在有12个球,怎么样才能让12个球平均分布到3个桶中呢?使用Hash算法的做法是,将1 ...