Scrapy基础(三) ------xpath基础
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基础的更多相关文章
- linux基础三---网络基础&软件包管理
一 ifconfig:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址. ifconfig eno16777736 down/up 关闭/开启 eno16777736 网卡 ifconf ...
- C++学习基础三——迭代器基础
迭代器分为两种:一种是iterator,另一种是const_iterator.两者都可进行访问容器中的元素,不同之处是:(1)const_iterator类型只能用于读取容器内的元素,不能更改其值:而 ...
- 爬虫开发7.scrapy框架简介和基础应用
scrapy框架简介和基础应用阅读量: 1432 scrapy 今日概要 scrapy框架介绍 环境安装 基础使用 今日详情 一.什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数 ...
- Python全栈开发【基础三】
Python全栈开发[基础三] 本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...
- Bootstrap <基础三十二>模态框(Modal)插件
模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 如果您想要单独引用该插件的功能,那么您需要引用 ...
- Bootstrap <基础三十一>插件概览
在前面布局组件中所讨论到的组件仅仅是个开始.Bootstrap 自带 12 种 jQuery 插件,扩展了功能,可以给站点添加更多的互动.即使不是一名高级的 JavaScript 开发人员,也可以着手 ...
- Bootstrap <基础三十>Well
Well 是一种会引起内容凹陷显示或插图效果的容器 <div>.为了创建 Well,只需要简单地把内容放在带有 class .well 的 <div> 中即可.下面的实例演示了 ...
- Bootstrap<基础三> 排版
Bootstrap 使用 Helvetica Neue. Helvetica. Arial 和 sans-serif 作为其默认的字体栈. 使用 Bootstrap 的排版特性,您可以创建标题.段落. ...
- jdbc基础 (三) 大文本、二进制数据处理
LOB (Large Objects) 分为:CLOB和BLOB,即大文本和大二进制数据 CLOB:用于存储大文本 BLOB:用于存储二进制数据,例如图像.声音.二进制文件 在mysql中,只有B ...
随机推荐
- python文件操作r+,w+,a+,rb+,
w:以写方式打开, a:以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+:以读写模式打开 w+:以读写模式打开 (参见 w ) a+:以读写模式打开 (参见 a ) rb:以二进制读模式 ...
- 2019-3-9,Servlet转跳链接详解
//以下代码,可以传递request和response对象及其属性和变量至指定页面 request.getRequestDispatcher("showAttribut.jsp") ...
- mac pro 基本使用
command+空格 调出搜索框 可以输入:网络,就是配置ip等信息 可以输入:终端,就是命令行窗口 可以输入:触控板,可以调节多点触控版 可以输入:系统偏好设置,进行配置 触控板:多点触控——两个 ...
- mac下安装Brew 警告:Warning: /usr/local/bin is not in your PATH.
终端输入命令 export PATH=/usr/local/bin:$PATH
- cmake方式使用vlfeat
目录 environment statement compile vlfeat with cmake compile example project with cmake 1. make sure c ...
- .Net(C#)用正则表达式清除HTML标签(包括script和style),保留纯本文(UEdit中编写的内容上传到数据库)
去官网下载,本Demo用的MVC模式 下载地址:http://ueditor.baidu.com/website/download.html 加入文件夹中的结构: 引入了函数公式的图标: @{ Vie ...
- C# float与UInt16互转
//float拆分成两个UInt16 public static UInt16 FloatToTwoUInt16(float f) { byte[] bs = BitConvert.GetBytes( ...
- 安装和强行卸载fuse
先卸载 yum list fuse yum --setopt=tsflags=noscripts remove fuse.x86_64 安装 yum install automake gcc-c++ ...
- 通过CSS自动截取字符串长度
Table Tr TD的自动换行 <style type="text/css"> table { width: 30em; table-layout: fixed; ...
- H5利用pattern属性和oninvalid属性验证表单
HTML代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...