返回顶部
首页 > 资讯 > 后端开发 > Python >scrapy选择器xpath
  • 700
分享到

scrapy选择器xpath

选择器scrapyxpath 2023-01-30 21:01:54 700人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

scrapy提取数据有自己的一套机制,它们被称作选择器(seletors),通过特定的Xpath或者CSS表达式来"选择"html文件中的某个部分。Xpath是一门用来在XML文件中选择节点的语言,也可以用在HTML上,

scrapy提取数据有自己的一套机制,它们被称作选择器(seletors),通过特定的Xpath或者CSS表达式来"选择"html文件中的某个部分。

Xpath是一门用来在XML文件中选择节点的语言,也可以用在HTML上,css是一门将HTML文档样式化的语言,选择器由它定义,并与特定的HTML元素的样式相关联

Scrapy的选择器构建与lxml库之上,这意味着他们在速度和解析准确性上非常相似


Xpath是一门在XML文档中查找信息的语言,Xpath可用来在XML文档中对元素和属性进行遍历。Xpath含有超过100个内建的函数,这些函数用于字符串值,数值,日期和时间比较,节点和QName处理,序列处理,逻辑值等等。

XPath,有7种类型节点:元素,属性,文本,命名空间,处理指令,注释以及文档节点


练习代码如下

<superhero>
   <class>
       <name>Tony Stark </name>
       <alias>Iron Man </alias>
       <sex>male </sex>
       <birthday>1969 </birthday>
       <age>47 </age>
   </class>
   <class>
       <name>Peter Benjamin Parker </name>
       <alias>Spider Man </alias>
       <sex>male </sex>
       <birthday>unknow </birthday>
       <age>unknow </age>
   </class>
   <class>
       <name>Steven Rogers </name>
       <alias>Captain America </alias>
       <sex>male </sex>
       <birthday>19200704 </birthday>
       <age>96 </age>
   </class>
</superhero>

Xpath使用路径表达式在XML文档中选取节点,常用路劲表达式如下:

表达式 描述

nodeName 选取此节点的所有子节点

/ 从根节点选取

// 从匹配选择的当前节点选择文档中的节点,不考虑它们的位置

. 选取当前节点

.. 选取当前节点的父节点

@ 选取属性

* 匹配任何元素节点

@* 匹配任何属性节点

Node() 匹配任何类型的节点


下面用Xpath选择器来"采集"XML文件所需要的内容

PyCharm上面创建superHero.xml文件,把上面的xml内容导入,进行练习

blob.png

准备工作,如下

blob.png

上面这段代码的意思是:导入scrapy.selector模块中的Selector,打开superHero.xml文件,并将内容写入到变量body中,然后使用XPath选择器显示superHero.xml文件中的所有内容,执行结果如下

blob.png

下面来看XPath选择器“收集”数据

练习1,代码如下

print('采集superHero.xml中第一个class的内容')

Selector(text=body).xpath('/html/body/superhero/class[1]').extract()

执行结果

blob.png

可以对比下之前的superHero.xml文件,看选择的第一个class内容是否正确

blob.png

对比下内容一样,选取没问题


练习2,代码如下

print('采集superHero.xml中最后一个class的内容')

Selector(text=body).xpath('/html/body/superhero/class[last()]').extract()

执行结果,然后去对比下

blob.png


练习3,代码如下

print('采集superHero.xml中name属性为en的数据')

Selector(text=body).xpath('//name[@lang="en"]').extract()

执行结果,去对比

blob.png


练习4,代码如下

print('采集superHero.xml中倒数第二个class的name节点的文本')

Selector(text=body).xpath('/html/body/superhero/class[last()-1]/name/text()').extract()

执行结果,对比

blob.png


练习5,代码如下

print('以下展示的是嵌套选择器')

sub = Selector(text=body).xpath('/html/body/superhero/class[last()-1]').extract()

sub

Selector(text=sub[0]).xpath('/html/body/class/sex/text()').extract()

Selector(text=sub[0]).xpath('//class/sex/text()').extract()

执行结果对比

blob.png注释

sub = Selector(text=body).xpath('/html/body/superhero/class[last()-1]').extract()

注释:采集superHero中倒数第二个class内容,然后赋值给subBody

sub

Selector(text=sub[0]).xpath('/html/body/class/sex/text()').extract()

注释:从根节点进行匹配获取sex里面的文本,注意xpath后面接的是 / 指根节点

Selector(text=sub[0]).xpath('//class/sex/text()').extract()

注释:从当前节点进行匹配获取sex里面的文本,注意xpath后面接的是 //指当前节点


--结束END--

本文标题: scrapy选择器xpath

本文链接: https://lsjlt.com/news/178947.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • scrapy选择器xpath
    Scrapy提取数据有自己的一套机制,它们被称作选择器(seletors),通过特定的Xpath或者css表达式来"选择"html文件中的某个部分。Xpath是一门用来在XML文件中选择节点的语言,也可以用在HTML上,...
    99+
    2023-01-30
    选择器 scrapy xpath
  • Scrapy元素选择器Xpath用法汇总
     众所周知,在设计爬虫时,最麻烦的一步就是对网页元素进行分析,目前流行的网页元素获取的工具有BeautifulSoup,lxml等,而据我使用的体验而言,Scrapy的元素...
    99+
    2024-04-02
  • Xpath元素选择器怎么在Scrapy中使用
    这期内容当中小编将会给大家带来有关Xpath元素选择器怎么在Scrapy中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 元素的多级定位与跳级定位多级定位:依靠html中的多级元素逐步缩小范围re...
    99+
    2023-06-14
  • scrapy选择器css
    CSS是网页代码中非常重要的一环,即使不是专业的Web从业人员,也有必要认真学习一下CSS选择器.class                .intro &nb...
    99+
    2023-01-30
    选择器 scrapy css
  • Scrapy中怎么利用Xpath选择器从网页中采集目标数据
    Scrapy中怎么利用Xpath选择器从网页中采集目标数据,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。/具体实现/1、针对标题,在上篇文章中...
    99+
    2024-04-02
  • 爬虫Scrapy框架之css选择器如何使用
    这篇文章将为大家详细讲解有关爬虫Scrapy框架之css选择器如何使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。css选择器介绍在css中选择器是一种模式,用于选择需要添加样式的元素,css对html...
    99+
    2023-06-02
  • Scrapy中诡异xpath的匹配内容失效问题及解决
    目录引言环境介绍问题基于xpath提取信息问题分析问题总结引言 在爬虫的世界里,xpath是一种非常简单易用的匹配规则,方便我们在web世界里提取需要的各类信息。 本文将讲述一个xp...
    99+
    2022-12-19
    Scrapy xpath xpath匹配内容失效 xpath匹配内容
  • 怎么分析Python网络爬虫四大选择器正则表达式、BS4、Xpath、CSS
    怎么分析Python网络爬虫四大选择器正则表达式、BS4、Xpath、CSS,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。今天小编来给大家总结一下这四个选择器,让大家更加深刻的...
    99+
    2023-06-04
  • 在Scrapy中怎么利用CSS选择器从网页中采集目标数据
    这篇文章主要介绍“在Scrapy中怎么利用CSS选择器从网页中采集目标数据”,在日常操作中,相信很多人在在Scrapy中怎么利用CSS选择器从网页中采集目标数据问题上存在疑惑,小编查阅了各式资料,整理出简单...
    99+
    2024-04-02
  • ID选择器与class选择器怎么用
    这篇文章主要介绍了ID选择器与class选择器怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ID选择器与class选择器怎么用文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2024-04-02
  • css选择器哪些是高级选择器
    CSS选择器中有一些被称为高级选择器的选择器,它们提供了更强大和灵活的选择能力,可以根据元素的关系、状态和位置等条件进行选择。以下是CSS中常见的高级选择器:1. 后代选择器(Descendant Selector):使用空格分隔的选择器,...
    99+
    2023-10-21
    CSS选择器 高级选择器
  • css选择器有哪些属性选择器
    CSS选择器提供了多种属性选择器,用于根据元素的属性值来选择元素。这些属性选择器可以根据属性值的相等、包含、开始、结束等条件进行选择。以下是CSS中常见的属性选择器:1. 等于选择器(Equals Selector):使用方括号([])和等...
    99+
    2023-10-21
    属性选择器 CSS选择器
  • jQuery 基础选择器与属性选择器
    目录基础选择器All Selector ("*")Class Selector (".class")Element Selector (&qu...
    99+
    2024-04-02
  • css3 选择器
      以前学习css的时候总是看见一个效果就看一下,没有系统的学习,最近看见了这个css3的网站,打算系统学习下,今天要跟大家分享的是css3的选择器。 我们先来看一张选择器列表图: 一、基本选择器 基本选择器参考传送门:http://ww...
    99+
    2023-01-31
    选择器
  • CSS相邻兄弟选择器、子选择器和兄弟选择器怎么用
    本文小编为大家详细介绍“CSS相邻兄弟选择器、子选择器和兄弟选择器怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS相邻兄弟选择器、子选择器和兄弟选择器怎么用”文章能帮助大家解决疑惑,下面跟着小编...
    99+
    2024-04-02
  • 如何理解CSS中的类型选择器和ID选择器以及class选择器
    这期内容当中小编将会给大家带来有关如何理解CSS中的类型选择器和ID选择器以及类选择器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。类型选择器类型选择器,是以html元素...
    99+
    2024-04-02
  • Jquery选择器简明版 Jquery选择器实用版
    根据id名称进行选择: 选择器:$("#id") <div id="id">选中 </div> 根据类名进行选择: 选...
    99+
    2023-05-18
    Jquery选择器
  • 云服务器地域选择怎么选择
    首先,考虑数据中心位置。在全球范围内,云服务器的主要数据中心大多数都位于美国、欧洲和亚洲等地。这些地区都有良好的网络连接,并且有大量的带宽可供使用。选择数据中心位置时,需要考虑自己的业务需求和地理位置的可行性。如果需要在全球范围内访问数据,...
    99+
    2023-10-27
    地域 服务器
  • 云服务器选择地区怎么选择
    云服务器的选择可以考虑以下几点: 云服务器的性能:选择一个高性能的云服务器,需要考虑服务器的计算能力、存储能力、带宽等等。需要根据自身的需求和预算,选择最合适的云服务器。 云服务器的价格:选择价格合理的云服务器,需要考虑云服务器的成本、...
    99+
    2023-10-27
    服务器 地区
  • css3类选择器中结合元素选择器和多类选择器的使用案例
    这篇文章主要介绍css3类选择器中结合元素选择器和多类选择器的使用案例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体代码如下所示:<!DOCTYPE html&g...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作