前言

做数据爬取快一年了,第一次遇到这样的数据(CDATA),用xpath提取他父类节点,其内容包含了cdata数据,内容后就无法提起出来,整的我一脸懵逼,爬了这么多个网站第一次见这样的数据形式,然后跟同事讨论起这块新大陆,再然后........此处省略一段逗比见解。

进入正题

首先个人对CDATA的见解:

CDATA对解释器忽略了它包含的内容,所以在爬取数据节点提取的时候没有数据存在

对一段CDATA数据进行提取

例:

<recordset>
<record>
<![CDATA[
<li><span class="news-time">2020-01-31</span></a></li>
]]>
</record>
<record>
<![CDATA[
<li><span class="news-time">2020-01-31</span></a></li>
]]>
</record>
<record><li><span class="news-time">2020-01-17</span></a></li>
]]>
</recordset>

对如上数据进行处理

1.剔除<![CDATA[  和    ]]>

2.帮处理后的数据转化为Selector的实例

3.运用xpath进行提取

import requests
import scrapy
resp = '<recordset><record><![CDATA[<li><span class="news-time">2020-01-31</span></a></li>]]></record><record><![CDATA[<li><span class="news-time">2020-01-31</span></a></li>]]></record><record><li><span class="news-time">2020-01-17</span></a></li>]]></recordset>
'# 替换,就是这么暴力
text = resp.replace('<![CDATA[', '').replace(']]>', '')
# 创建一个 Selector 类的实例
sel = scrapy.Selector(text=text)
# 使用 xpath 选择器
year_list = sel.xpath('//li/span/text()').getall()

以上操作就可以很顺利提取想要的数据啦

CDATA 数据处理相关推荐

  1. python处理一亿条数据_Python基础数据处理库

    Numpy 简介 import numpy as np Numpy是应用Python进行科学计算的基础库.它的功能包括多维数组.基本线性代数.基本统计计算.随机模拟等.Numpy的核心功能是ndarr ...

  2. IP得到天气预报(3)———XML中CDATA的提取

    上一个Session中,我们可以得到其中的部分信息了.也就是说,如果你自己看的话,就会发现雅虎的天气中,这样读取XML我们也只能得到相应的最低温度,最高温度.或者明天的,或者今天的湿度风速.这是东西都 ...

  3. Nodejs 爬虫小计(内容包含CDADA,xml数据处理,charset内容转码)

    一.爬虫逻辑一个基础插件工具 1.爬虫逻辑(自我总结,不代表正规概念) (1)直接获取接口数据,大多数接口是有权限控制,接口数据风险较大,但是数据是最完整的,数据处理也是相对简单的. (1-1)基础工 ...

  4. XML转义字符<1[CDATA[文本内容]]>

    XML转义字符<![CDATA[文本内容]]> 1. XML转义问题 2. XML转义方式 2.1 XML中5个预定义的实体引用 2.2 <![CDATA[文本内容]]>方式 ...

  5. 数据结构(03)— 数据处理基本操作(数据的查找、新增、删除、修改)

    我们先来看一个关于查找的例子.查找,就是从复杂的数据结构中,找到满足某个条件的元素.通常可从以下两个方面来对数据进行查找操作:​ 根据元素的位置或索引来查找: 根据元素的数值特征来查找. 针对上述两种 ...

  6. 大规模数据处理Apache Spark开发

    大规模数据处理Apache Spark开发 Spark是用于大规模数据处理的统一分析引擎.它提供了Scala.Java.Python和R的高级api,以及一个支持用于数据分析的通用计算图的优化引擎.它 ...

  7. 2021年大数据Spark(二十六):SparkSQL数据处理分析

    目录 SparkSQL数据处理分析 基于DSL分析 基于SQL分析 第一步.注册为临时视图 第二步.编写SQL,执行分析 ​​​​​​​SparkSQL数据处理分析 在SparkSQL模块中,将结构化 ...

  8. 电子表单系列谈之表单数据处理

    袁永福( http://www.xdesigner.cn ) 2007-8-16 点击下载其表单工具概念版本 一般的电子表单工具都要求能自动显示和保存关系型数据库中的数据,比如可以使用SQL语句查询数 ...

  9. mybatis中![CDATA[]]的作用

    此篇文章引自QH_JAVA的文章 在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用 ...

最新文章

  1. keras 的 example 文件 reuters_mlp.py 解析
  2. iOS架构篇-3 网络接口封装
  3. python3 模板库 好用_良心整理15个超级Python库,不要错过
  4. 将线程pid转成16进制_硬件资讯 | AMD 线程撕裂者 5000 系 CPU 将包含 16 核版本
  5. 给定关键字不在字典中怎么解决_什么是字典?我们为什么要学它?你不知,现在你只需1分钟就可学会...
  6. 页面初始加载的是默认刷新一次(f5)
  7. linux misc device字符杂项设备驱动
  8. sscanf函数和正则表达式
  9. 输入字符串统计字符串中每个字符出现的次数
  10. Linux命令整理 —— 目录结构
  11. 美企调查华为设备安全性,华为发长文质疑;摩根大通预计苹果2020年将推5G iPhone;谷歌拟联手Dish成立美国第四大运营商...
  12. 随想录(分布式系统)
  13. ASP.NET输入文本框自动提示功能
  14. OpenKM文档管理系统开源源码v6.3.9
  15. Node.JS 字符分割
  16. ajax readystate为1,Ajax readyState总是等于1
  17. Cocos2dx--使用Shader
  18. 私企招聘:腾讯TME社会招聘
  19. python pickle文件大小_无法在Python中加载以前转储的大大小pickle文件
  20. Android今日头条的适配

热门文章

  1. DELL笔记本由Ubuntu改为Win10系统
  2. 如何解决下载链接在微信中无法打开的问题
  3. Python中如何将浮点型数据转换成整型
  4. chromedriver 下载与安装方法[转]
  5. JavaScript中节点获取,节点的属性,如何操作节点
  6. HIVE:窗口函数,用sql语句查询MySQL安装路径和版本
  7. linux 每日学一点《用tar来备份ubuntu系统》
  8. inline函数在IAR中的使用
  9. 我的spfa (= =)!
  10. IE 下 SELECT 小箭头乱码