Scrapy数据解析(XPath、CSS)

Scrapy数据解析(CSS、XPath)

在Scrapy中原有的解析语法与原来的有点略微的区别

目录

  • Scrapy数据解析(CSS、XPath)
    • CSS解析器
    • XPath解析器

CSS解析器

示例:

  • response.css('a')返回的是selector对象
  • response.css('a').extract()返回的是a标签对象
  • response.css('a::text').extract_first()返回的是第一个a标签中文本的值
  • response.css('a::attr(href)').extract_first()返回的是第一个a标签中href属性的值
  • response.css('a[href*=image]::attr(href)').extract()返回所有a标签中href属性包含image的值
  • response.css('a[href*=image] img::attr(src)').extract()返回所有a标签下image标签的src属性

基本语法:

语法说明
*选择所有节点
div h1::textdiv下的h1标签的文本
#container选择id为container的节点
.container选择所有class包含container的节点
div,p选择所有 div 元素所有 p 元素
li a选取所有li 下所有a节点
ul + p选取ul后面的第一个p元素
div#container > ul选取id为container的div的第一个ul子元素
ul ~p选取与ul相邻的所有p元素
a[title]选取所有有title属性的a元素
a[href=”http://baidu.com”]选取所有href属性为http://baidu.com的a元素
a[href*=”baidu”]选取所有href属性值中包含baidu的a元素
a[href^=”http”]选取所有href属性值中以http开头的a元素
a[href$=”.jpg”]选取所有href属性值中以.jpg结尾的a元素
input[type=radio]:checked选择选中的radio的元素
div:not(#container)选取所有id为非container 的div属性
li:nth-child(3)选取第三个li元素
li:nth-child(2n)选取第偶数个li元素
a::attr(href)选取a标签的href属性
a::text选取a标签下的文本

XPath解析器

示例:

  • response.xpath('//a'):返回所有a标签的节点对象
  • response.xpath('//a').extract():返回所有a标签的HTML内容
  • response.xpath('//a/text()').extract_first():返回第一个a标签中的文本内容。
  • response.xpath('//a/@href').extract_first():返回第一个a标签中的href属性值
  • response.xpath('//a[contains(@href,"image")]/@href').extract():返回所有href属性中包含"image"的a标签的href属性值
  • response.xpath('//a[contains(@href,"image")]/img/@src').extract():返回所有href属性中包含"image"的a标签下的img标签的src属性值

基本语法:

语法说明
artical选取所有artical元素的子节点
/artical选取根元素artical
./artical选取当前元素下的artical
…/artical选取父元素下的artical
artical/a选取所有属于artical的子元素a元素
//div选取所有div 子元素,无论div在任何地方
artical//div选取所有属于artical的div 元素,无论div元素在artical的任何位置
//@class选取所有class属性
a/@href选取a标签的href属性
a/text()选取a标签下的文本
string(.)解析出当前节点下所有文字
string(…)解析出父节点下所有文字

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/800173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯 基础练习 01字串

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是: 00000…

2024/4/2—力扣—栈的最小值

代码实现: typedef struct node {int val;struct node *next; } Node;typedef struct {struct node *top;int min; } MinStack;/** initialize your data structure here. */MinStack* minStackCreate() {MinStack *obj malloc(sizeof(*obj));obj->top NULL;ob…

爬虫 新闻网站 以湖南法治报为例(含详细注释) V1.0

目标网站:湖南法治报 爬取目的:为了获取某一地区更全面的在湖南法治报已发布的宣传新闻稿,同时也让自己的工作更便捷 环境:Pycharm2021,Python3.10, 安装的包:requests,csv&#xff…

【Java集合进阶】泛型的通配符和综合练习

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 …

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(七)- 向量算术指令格式

1. 引言 以下是《riscv-v-spec-1.0.pdf》文档的关键内容: 这是一份关于向量扩展的详细技术文档,内容覆盖了向量指令集的多个关键方面,如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量…

Nginx-调度器、优化

Nginx调度器 一、HTTP调度 1、反向代理语法格式 http {upstream webserver { # 定义源服务器组#ip_hash;server 192.168.88.100:80 weight2;server 192.168.88.200:80 down;server 192.168.88.101:80 max_fails2 fail_timeout30;}server {listen 80;server_name _…

Mysql底层原理六:InnoDB 数据页结构

1.行格式 1.1 Compact行格式 1.1.1 示意图 1.1.2 准备一下 1)建表 mysql> CREATE TABLE record_format_demo (-> c1 VARCHAR(10),-> c2 VARCHAR(10) NOT NULL,-> c3 CHAR(10),-> c4 VARCHAR(10)-> ) CHARSETascii ROW_FORMATCOM…

怎么将静图变成gif?告诉你三步快速制作

想要将jpg格式的静图变成gif格式的动图时要怎么操作呢?在这个飞速发展的数字媒体时代,经常会在网络上分享有趣的动态图片。当我们想要将自己手中的jpg图片变成gif动图的时候怎么实现呢?很简单,通过使用gif图片制作(htt…

Vue 打包自动清理缓存

在Vue开发中遇到打包部署之后总是要手动清除浏览器缓存数据的问题,此问题可以用下方式: 1、package.json文件中有一个管理版本号属性:version,在我们每次打包部署之前修改当前版本号 2、在入口文件main.js文件中,加入版…

windows环境下实现ffmpeg本地视频进行rtsp推流

摘要:有时候服务端(如linux)或者边缘端(jetson盒子)需要接受摄像头的视频流输入,而摄像头的输入视频流一般为rtsp,测试时需要搭建摄像头环境,很不方便,因此需要对本地视频…

YOLOV8注意力改进方法:DoubleAttention(附代码)

原论文地址:原论文地址 DoubleAttention网络结构的优点在于,它能够有效地捕获图像中不同位置和不同特征的重要性,从而提高了图像识别和分割的性能。 论文相关内容介绍: 论文摘要:学习捕捉远程关系是图像/视频识别的…

springboot系列-api接口请求实现

springboot HTTP请求接口实现 基于springboot 2.6.6 代码地址&#xff1a;github仓库地址 更多系列教程请关注公众号’coderlike’ 如果觉得有帮助希望能关注下公众号 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-b…

PyCharm 2024.1 版本带来了一系列重要的更新和新特性

Hugging Face 模型和数据集的文档预览&#xff1a; 可直接在 IDE 中查看 Hugging Face 模型和数据集的文档&#xff0c;无需离开编辑环境。 本地全行代码补全&#xff1a; 对于前端框架&#xff0c;如 JavaScript 和 TypeScript&#xff0c;PyCharm 现在支持基于机器学习的全行…

魔众 文库配置异步转换

同步转换 系统默认使用同步转换&#xff0c;即用户上传文档提交接口瞬间&#xff0c;系统会立即进行转换。 同步转换容易造成页面卡顿&#xff0c;转换时间超长的情况下&#xff0c;系统接口会超时。 异步转换 系统支持异步转换&#xff0c;即用户上传文档提交接口瞬间&…

【算法】合并两个有序数组 - 双指针

题目 两个有序整数数组 nums1 和 nums2 及他们的元素个数 m、n&#xff0c;将 nums2 合并到 nums1 中&#xff0c;结果依然有序。 nums1 长度默认为 m n&#xff0c;没有元素的位置用 0 补齐。 原理 定义三个指针&#xff0c;分别指向 nums1 的最大元素(p1)、nums2 的最大元…

Elasticsearch索引之嵌套类型:深度剖析与实战应用

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! Elasticsearch是一个基于Lucene的搜索服务器&#xff0c;它提供了一个分布式、多租户能力的全文搜索引擎&#xff0c;并带有一个基…

烧坏两块单片机,不知道原因?

没有看你的原理图&#xff0c;以下是造成烧毁芯片的几个环节&#xff1a; 1. 最大的可能性是你的单片机电机控制输出与电机驱动电路没有隔离。 我的经验&#xff0c;使用STM32控制电机&#xff0c;无论是直流电机脉宽调制&#xff0c;还是步进电机控制&#xff0c;控制电路与…

libpcap抓包的原理是什么?

libpcap是一个开源库&#xff0c;用于捕获计算机网络上的数据包。它是网络数据包捕获的事实标准&#xff0c;并被许多工具使用&#xff0c;包括Wireshark和Tcpdump。libpcap的工作原理可以概括为以下几个关键点&#xff1a; 用户空间数据包捕获&#xff1a;libpcap在用户空间运…

PCA算法(Principal Component Analysis)揭秘

经典PCA算法 PCA算法的应用包括降维、有损数据压缩、特征抽取、数据可视化等。目前PCA算法有两个通用定义&#xff0c;能殊途同归&#xff0c;得到相同的结果。一方面&#xff0c;我们可以用正交投影来定义PCA&#xff0c;即将数据投影到更低维的线性子空间&#xff0c;也被称…

DolphinScheduler 答案整理,最新面试题

DolphinScheduler的架构设计是怎样的&#xff1f; DolphinScheduler的架构设计主要分为四个层次&#xff1a;前端界面层、API服务层、调度层和执行层。 1、前端界面层&#xff1a; 提供任务的定义、流程的设计、监控等功能&#xff0c;用户通过前端界面操作整个系统。 2、AP…