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. Appium Demo

    import unittestimport timefrom appium import webdriverfrom public import configimport os #类继承unittes ...

  2. Mysql 5.7 CentOS 7 安装MHA

    Table of Contents 1. MHA简介 1.1. 功能 1.2. MHA切换逻辑 1.3. 工具 2. 环境 2.1. 软件 2.2. 环境 3. Mysql 主从复制 3.1. Mys ...

  3. spring cloud 声明式rest客户端feign调用远程http服务

    在Spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.Feign就是Spring Cloud提供的一种声明式R ...

  4. Html页面添加百度地图

    1.进入百度地图开放平台 http://lbsyun.baidu.com/ 2.进入右上角的   “API控制台” 在这里创建应用 并 获取密钥 3.进入 如下地址 创建地图 http://api.m ...

  5. 步步为营101-同一个PCode下重复的OrderNumber重新排序

    USE [K2_WorkFlow_Test] GO /****** Object: StoredProcedure [dbo].[sp_UpdateBPM_DictionaryForOrderNumb ...

  6. 在Ubuntu内制作自己的VOC数据集

    一.VOC数据集的简介 PASCAL VOC为图像的识别和分类提供了一整套标准化的优秀数据集,基本上就是目标检测数据集的模板.现在有VOC2007,VOC2012.主要有20个类.而现在主要的模型评估 ...

  7. 盘点那些Vs中常用到的Tab快捷编码

    1.快速声明for循环:for+Tab 2.快速声明Foreach遍历:foreach+Tab 3.快速定义属性:prop+Tab 4.

  8. Eclipse+Maven整合开发Java项目(一)➣Maven基础环境配置

    概述 Maven是一个Java语言编写的开源项目管理工具,是Apache软件基金会的顶级项目.主要用于项目构建,依赖管理,项目信息管理.有些项目需要添加响应的依赖包,Maven就是公用包集合.存在远程 ...

  9. 导出CSV乱码

    导出CSV,无论是什么格式,excel打卡都是乱码 需要加上 echo "\xEF\xBB\xBF"; header("Content-Disposition:attac ...

  10. 未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序。

     问题描述:运行访问oracle数据库的.net程序时,弹出错误"未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序". 系统环境:windows server 2 ...