Document

提取 xml 文件中的 CDATA 数据

简介
XML 是常见的数据格式。

解析器往往会忽略 XML 文件中 <![CDATA[ 信息 ]]> 区段的内容,但有时我们是需要抓取这些内容的。

搜索了下这个问题,没找到较好的回答,自己解决。

本文的开发场景为:

编程语言:Python 3.7.0
使用了 Scrapy 爬虫框架的 Selector 类和它的 xpath 选择器(方法)
使用了 requests 库
方法
总结为一句话:

直接把整个文档中所有 <![CDATA[ 信息 ]]> 这东西 信息 两边的字符抹掉。

简单暴力,不需要导入其它任何依赖。

XML 文件示例:

<Item>
<YEAR>
<![CDATA[ 1999 ]]>
</YEAR>
<CITING>
<![CDATA[ 0 ]]>
</CITING>
</Item>

解析程序示例:

import requests
import scrapy

url = 'http://xml文件的地址'
# 获取 xml 文件
res = requests.get(url)
# 替换,就是这么暴力
text = res.text.replace('<![CDATA[', '').replace(']]>', '')
# 创建一个 Selector 类的实例
sel = scrapy.Selector(text=text)
# 使用 xpath 选择器
year_list = sel.xpath('//year/text()').extract()


问题解决。
原文链接:https://blog.csdn.net/mywang88/article/details/85260308

posted @ 2021-05-14 11:24  从未被超越  阅读(972)  评论(0)    收藏  举报