原文标题:《Python网络爬虫—Scrapy的选择器Xpath》 对原文有所修改和演绎

优势

XPath相较于CSS选择器,可以更方便的选取

  • 没有id class name属性的标签
  • 属性或文本特征不显著的标签
  • 嵌套层次极其复杂的标签

XPath路径

定位方式

/ 绝对路径 表示从根节点开始选取
// 相对路径 表示从任意节点开始

基本的节点定位

#查找html下的body下的form下的所有input节点
/html/body/form/input #查找所有input节点
//input

使用通配符*定位

#查找form节点下的所有节点
//form/*#查找所有节点//* #查找所有input节点(input至少有爷爷辈亲戚节点)
//*/input

使用索引定位

#定位 第8个td下的 第2个a节点
//*/td[7]/a[1] #定位 第8个td下的 第3个span节点
//*/td[7]/span[2] #定位 最后一个td下的 最后一个a节点
//*/td[last()]/a[last()]

使用属性

#定位所有包含name属性的input节点
//input[@name] #定位含有属性的所有的input节点
//input[@*] #定位所有value=2的input节点
//input[@value='2'] #使用多个属性定位
//input[@value='2'][@id='3']
//input[@value='2' and @id='3']

使用函数定位

函数 含义
contains(,) 前者中包含后者
text() 获取节点中的字符串
starts-with() 匹配起始位置的字符串

<a class="menu_hot" href="/ads/auth/promote.html">应用推广</a>

#定位href属性中包含“promote.html”的所有a节点
//a[contains(@href,'promote.html')] #元素内的文本为“应用推广”的所有a节点
//a[text()='应用推广'] #href属性值是以“/ads”开头的所有a节点
//a[starts-with(@href,'/ads')]

使用XPath轴

这部分类似BeautifulSoup中的sibling、parents、children方法。

轴名称 含义
ancestor 选取当前节点的所有先辈节点
ancestor-or-self 选取当前节点的所有先辈节点及当前节点自己
attribute 选取当前节点的所有属性
child 选取当前节点的所有子节点
descendant 选取当前节点的所有后代节点
descendant-or-self 选取当前节点的所有后代节点及当前节点自己
following 选取党建节点结束后的所有节点
parent 选取当前节点的父节点
preceding-sibling 选取当前节点之前的所有同辈节点
self 选取当前节点自己
原文地址:http://mp.weixin.qq.com/s/UT4UFDpgo2ER300zq_uqsQ

Python中Scrapy框架元素选择器XPath的简单实例的更多相关文章

  1. python爬虫中scrapy框架是否安装成功及简单创建

    判断框架是否安装成功,在新建的爬虫文件夹下打开盘符中框输入cmd,在命令中输入scrapy,若显示如下图所示,则说明成功安装爬虫框架: 查看当前版本:在刚刚打开的命令框内输入scrapy versio ...

  2. python爬虫scrapy框架——人工识别登录知乎倒立文字验证码和数字英文验证码(2)

    操作环境:python3 在上一文中python爬虫scrapy框架--人工识别知乎登录知乎倒立文字验证码和数字英文验证码(1)我们已经介绍了用Requests库来登录知乎,本文如果看不懂可以先看之前 ...

  3. python的scrapy框架的使用 和xpath的使用 && scrapy中request和response的函数参数 && parse()函数运行机制

    这篇博客主要是讲一下scrapy框架的使用,对于糗事百科爬取数据并未去专门处理 最后爬取的数据保存为json格式 一.先说一下pyharm怎么去看一些函数在源码中的代码实现 按着ctrl然后点击函数就 ...

  4. python爬虫scrapy框架

    Scrapy 框架 关注公众号"轻松学编程"了解更多. 一.简介 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量 ...

  5. Python爬虫Scrapy框架入门(2)

    本文是跟着大神博客,尝试从网站上爬一堆东西,一堆你懂得的东西 附上原创链接: http://www.cnblogs.com/qiyeboy/p/5428240.html 基本思路是,查看网页元素,填写 ...

  6. Python使用Scrapy框架爬取数据存入CSV文件(Python爬虫实战4)

    1. Scrapy框架 Scrapy是python下实现爬虫功能的框架,能够将数据解析.数据处理.数据存储合为一体功能的爬虫框架. 2. Scrapy安装 1. 安装依赖包 yum install g ...

  7. 基于python的scrapy框架爬取豆瓣电影及其可视化

    1.Scrapy框架介绍 主要介绍,spiders,engine,scheduler,downloader,Item pipeline scrapy常见命令如下: 对应在scrapy文件中有,自己增加 ...

  8. Python爬虫 ---scrapy框架初探及实战

    目录 Scrapy框架安装 操作环境介绍 安装scrapy框架(linux系统下) 检测安装是否成功 Scrapy框架爬取原理 Scrapy框架的主体结构分为五个部分: 它还有两个可以自定义下载功能的 ...

  9. Python爬虫Scrapy框架入门(1)

    也许是很少接触python的原因,我觉得是Scrapy框架和以往Java框架很不一样:它真的是个框架. 从表层来看,与Java框架引入jar包.配置xml或.property文件不同,Scrapy的模 ...

随机推荐

  1. 工程下CmakeLists.txt

    2.工程下Cmake 本小节的任务是让上一小结的程序更像一个工程: 为工程添加一个子目录 src,用来放置工程源代码 : 添加一个子目录doc,用来放置这个工程的文档 hello.txt: 在工程目录 ...

  2. vue的地图插件amap

    https://www.jianshu.com/p/0011996b81e2(amap) npm install vue-amap --save

  3. 安装splash

    参考: https://blog.csdn.net/qq_41020281/article/details/82599075

  4. 在windows 7 和linux上安装xlwt和xlrd

    在windows 7上安装xlwt xlrd xlwt是开源社区编写的python库,需要单独安装,下载地址https://pypi.python.org/pypi/xlwt 目前xlwt最新的版本是 ...

  5. k8s调度器、预选策略及调度方式

    一.k8s调度流程 1.(预选)先排除完全不符合pod运行要求的节点2.(优先)根据一系列算法,算出node的得分,最高没有相同的,就直接选择3.上一步有相同的话,就随机选一个 二.调度方式 1.no ...

  6. django celery redis 定时任务

    0.目的 在开发项目中,经常有一些操作时间比较长(生产环境中超过了nginx的timeout时间),或者是间隔一段时间就要执行的任务. 在这种情况下,使用celery就是一个很好的选择.   cele ...

  7. Map接口----Map中嵌套Map

    package cn.good.com; import java.util.HashMap; import java.util.Iterator; import java.util.Map; impo ...

  8. How to remove unwant Explorer Context Menu

    HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell

  9. vhdl 边沿

    rising_eage falling_eage clock'event and clock='1' 两种方式

  10. WSS Process On Causal LTI System

    Consider a real LTI system with a WSS process $x(t)$ as input and WSS process $y(t)$ as output. Base ...