xpath通过text()方式获取div节点下的文本存在bug

2023-11-19

环境:scrapy1.8 , python3.7.3

div块如下:

<div class="li_b_l">
                                    <span class="money">12k-20k</span>
                                    <!--<i></i>-->经验3-5年 / 大专
                                </div>

用形如

x=response.xpath("//div[@class='li_b_l']/text()").getall()
print(x)

获取的文本列表为

['\n                                    ', '\n                                    ', '经验3-5/ 本科\n
                 ', '\n
', '\n                                                                    ', '\n
                             ', '\n                                                                    ', '\n
                                                          ', '\n
             ', '\n                                                                                    ']

竟然有十条文本,莫名奇妙会多很多文本,而我只是想要div块中的文本,我认为text()节点应该只会给我返回三条文本
①span节点前的换行符和空格
②span节点后的换行符和空格
③注释后的文本和换行符

怀疑是scrapy的xpath函数有bug,我将div块用lxml解析为html后,用lxml的xpath()函数测试:

from lxml import etree
html="""<div class="li_b_l">
                                    <span class="money">12k-20k</span>
                                    <!--<i></i>-->经验3-5年 / 大专
                                </div>"""
element=etree.HTML(html)
text=element.xpath(".//div[@class='li_b_l']/text()")
print(text)

['\n                                    ', '\n                                    ', '经验3-5年 / 大专\n                                ']

三条文本输出,结果和我的设想一样,但是为什么scrapy的xpath函数竟然有十条文本输出呢?
原因可能有:
①同样的html代码,scrapy的解析和lxml的解析不一样,有可能scrapy会多添加空格和换行进去.
②scrapy的xpath和lxml的xpath处理方式不一样.
③才疏学浅,关于xpath还有我不知道的的点.

烦请大家看看,place *^*

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xpath通过text()方式获取div节点下的文本存在bug 的相关文章

随机推荐

  • python解释器安装教程(3.10版本)

    文章目录 一 Python下载 二 Python安装 三 检查Python是否安装成功 很多小伙伴在学习pyhton的时候 还会卡在第一步 开发环境的搭建 今天就简单的写一个python的安装教程 希望对你们有用 一 Python下载 1
  • Vue引入elementUI组件

    Element Ul是饿了么前端团队推出的一款基于Vue js 2 0 的桌面端UI框架 一套为开发者 设计师和产品经理准备的基于 Vue 2 0 的桌面端组件库 手机端有对应框架是Mint UI 中文文档 http element cn
  • 基于Java实现的DES加密算法

    1 总结DES原理 DES算法为密码体制中的对称密码体制 又被称为美国数据加密标准 是1972年美国IBM公司研制的对称密码体制加密算法 明文按64位进行分组 密钥长64位 密钥事实上是56位参与DES运算 第8 16 24 32 40 4
  • fiddler APP抓包设置

    IOS设置 http t istester com 3000 istester 21Day src master Fiddler V1 0 21Day Fiddler 13 md 安卓设置 http t istester com 3000
  • Spring容器和应用上下文理解

    有了Spring之后 通过依赖注入的方式 我们的业务代码不用自己管理关联对象的生命周期 业务代码只需要按照业务本身的流程 走啊走啊 走到哪里 需要另外的对象来协助了 就给Spring说 我想要个对象 于是Spring就很贴心的给你个对象 听
  • 一文学会Canal怎么用

    文章目录 一 概念 1 什么是Canal 2 Canal的基本原理 二 Mysql配置 1 安装 2 开启mysql的binlog 3 mysql创建cannl用户并授权 三 安装配置ES kibana 四 安装canal server 五
  • jsp page 提示[page] is not properly terminated

    今天在编写jsp 页面 引入其他的jsp 的方式如下
  • 批量将xls转换成xlsx

    转载 https blog csdn net weixin 44674885 article details 88669259 1 xls和xlsx区别 xls格式 最大行数为65535 xlsx格式 最大行数为1048576 2 xls批
  • 海康、大华IpCamera RTSP地址和格式

    大家注意 我下面文章描述的都是海康老款摄像机的RTSP规则 现在新的DS 系列 摄像机型号为DS 开头的 的摄像机RTSP规则为 http blog csdn net xiejiashu article details 71786187 海
  • CentOS7编译内核

    下面记录了我在CentOS7上编译新内核的过程 背景 实验室的一台服务器上装且仅装了CentOS7 内核版本为3 10 0 327 el7 x86 64 我要在当前系统上 编译 安装内核4 1 16 搭建编译环境 sudo yum inst
  • 区块链学习笔记(六)——区块链的分类

    文章目录 一 强调 二 公有链 联盟链 私有链 1 公有链 2 联盟链 3 私有链 总结 一 强调 先做一下重复强调 区块链技术是集分布式存储 点对点传输 共识机制 加密算法 数据区块等概念于一体的新兴技术集合 二 公有链 联盟链 私有链
  • 基于ETest的航电系统通用测试平台

    随着电子技术的发展 航电系统在飞机整机中的重要性飞速提升 据统计 近年来航电系统在飞机出厂成本中的比例直线上升 航电系统研发成本已占飞机研制总成本的近30 并保持着持续扩大的趋势 测试保障作为航电产业链至关重要的一环 贯穿航空电子设备 研发
  • SpringBoot读取Resource下文件的四种方式

    SpringBoot读取Resource下文件的四种方式 1 ClassPathResource classPathResource new ClassPathResource static image a jpg InputStream
  • connect函数的用法

    作者 曾宏安 华清远见嵌入式学院讲师 在网络编程中 connect函数经常用来在套接字上初始化连接 无论是流式套接字还是数据报套接字都可以使用connect函数 但含义却不一样 下面我们分别来讨论一下 一 流式套接字 流式套接字通常使用的是
  • CSS字体样式属性(字体设置)

    font size 字号大小 font size属性用来设置字符 该属性的值有两种单位 1 相对长度单位 像素单位 px 2 绝对长度单位 使用非常少 font family 字体 font family属性用于设置字体 网页常用的字体 宋
  • 学习太极创客 — ESP8226 (十三)OTA

    视频链接 https www bilibili com video BV1L7411c7jw p 23 vd source b91967c499b23106586d7aa35af46413 资料链接 http www taichi make
  • bazel构建使用clang工具链

    最近使用clang工具构建bazel项目 官方文档给的step较为繁琐 这里暂时记录一下 以便后期可以直接去用 这里具体的规则不进行详细解释 具体看官方文档有关描述 查看预定义变量列表 使用如下命令 bazel info show make
  • 【华为OD统一考试A卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • module ‘tensorflow‘ has no attribute ‘global_variables_initializer‘(问题已解决)

    最近在学深度学习 一开始就遇到了个很狗血的问题 总会报出例如下面的这种错误 y hat tf constant 36 name y hat y tf constant 39 name y loss tf Variable y y hat 2
  • xpath通过text()方式获取div节点下的文本存在bug

    环境 scrapy1 8 python3 7 3 div块如下 div class li b l span class money 12k 20k span 经验3 5年 大专 div 用形如 x response xpath div cl