关于python爬虫爬取网站时,数据返回中有 <![CDATA[ 字样的数据,xpath取不到值,解析问题及问题解决方案

问题:

今天python 爬取网站时, 网站返回的数据格式如图所示:
在这里插入图片描述
我使用xpath 在脚本取值时,可以取到record这一层,但是循环下一层时,一直取不到数据;
原文:

<datastore><totalrecord>6930</totalrecord><totalpage>462</totalpage><recordset><record><![CDATA[<li><a href="/art/2022/11/7/art_1228987816_59062462.html" target="_blank" title="章镇镇西俞埂(坝山排涝站-章丰公路段)、大浸北埂(埠头段)、蒋山埂皇马段路面修复及抛石加固工程中标候选人公示">章镇镇西俞埂(坝山排涝站-章丰公路段)、大浸北埂(埠头段)、蒋山埂皇马段路面修复...</a><span style="float:right;color:#999">2022-11-07</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/11/4/art_1228987816_59062416.html" target="_blank" title="上虞区道墟街道新屯南村河道整治工程(二期)二标段中标候选人公示">上虞区道墟街道新屯南村河道整治工程(二期)二标段中标候选人公示</a><span style="float:right;color:#999">2022-11-04</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/11/4/art_1228987816_59062352.html" target="_blank" title="2022年交通领域防灾减灾能力综合提升工程(杭甬运河(四十里河段等)防洪减灾提升工程)中标候选人公示">2022年交通领域防灾减灾能力综合提升工程(杭甬运河(四十里河段等)防洪减灾提升...</a><span style="float:right;color:#999">2022-11-04</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/11/3/art_1228987816_59062316.html" target="_blank" title="上虞区长塘镇2022年度面上水利建设项目(二期)--长塘镇会篁溪、广陵宅岙溪、上堡岙溪流整治工程中标候选人公示">上虞区长塘镇2022年度面上水利建设项目(二期)--长塘镇会篁溪、广陵宅岙溪、上...</a><span style="float:right;color:#999">2022-11-03</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/11/3/art_1228987816_59062288.html" target="_blank" title="东大门门户改造工程--称海至塘路改造提升工程中标候选人公示">东大门门户改造工程--称海至塘路改造提升工程中标候选人公示</a><span style="float:right;color:#999">2022-11-03</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/11/3/art_1228987816_59062251.html" target="_blank" title="东大门门户改造工程-人民西路至江协村道路改造工程中标候选人公示">东大门门户改造工程-人民西路至江协村道路改造工程中标候选人公示</a><span style="float:right;color:#999">2022-11-03</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/11/2/art_1228987816_59062226.html" target="_blank" title="道墟街道中心小学异地新建工程中标候选人公示">道墟街道中心小学异地新建工程中标候选人公示</a><span style="float:right;color:#999">2022-11-02</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/11/2/art_1228987816_59062205.html" target="_blank" title="5万吨每日工业污水处理异地扩建项目-废气处理系统工程设备采购中标候选人公示">5万吨每日工业污水处理异地扩建项目-废气处理系统工程设备采购中标候选人公示</a><span style="float:right;color:#999">2022-11-02</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/11/1/art_1228987816_59062109.html" target="_blank" title="道墟街道中心小学异地新建工程监理中标候选人公示">道墟街道中心小学异地新建工程监理中标候选人公示</a><span style="float:right;color:#999">2022-11-01</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/31/art_1228987816_59062041.html" target="_blank" title="虞东资源再生利用绿色综合体项目施工中标候选人公示">虞东资源再生利用绿色综合体项目施工中标候选人公示</a><span style="float:right;color:#999">2022-10-31</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/31/art_1228987816_59062024.html" target="_blank" title="上虞区曹娥江城区段防洪堤综合提升一期工程施工1标中标候选人公示">上虞区曹娥江城区段防洪堤综合提升一期工程施工1标中标候选人公示</a><span style="float:right;color:#999">2022-10-31</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/28/art_1228987816_59061978.html" target="_blank" title="虞东资源再生利用绿色综合体项目监理中标候选人公示">虞东资源再生利用绿色综合体项目监理中标候选人公示</a><span style="float:right;color:#999">2022-10-28</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/28/art_1228987816_59061947.html" target="_blank" title="章镇镇清潭溪 ( 胡村村庄段 ) 整治工程中标候选人公示">章镇镇清潭溪 ( 胡村村庄段 ) 整治工程中标候选人公示</a><span style="float:right;color:#999">2022-10-28</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/28/art_1228987816_59061942.html" target="_blank" title="东关派出所临时业务用房改造工程中标候选人公示">东关派出所临时业务用房改造工程中标候选人公示</a><span style="float:right;color:#999">2022-10-28</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/28/art_1228987816_59061920.html" target="_blank" title="上虞区上浦镇荳山电排站(老站)改造工程中标候选人公示">上虞区上浦镇荳山电排站(老站)改造工程中标候选人公示</a><span style="float:right;color:#999">2022-10-28</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/26/art_1228987816_59061739.html" target="_blank" title="丰惠镇南源村瑞象溪、贾塔中家河、新河头等河道整治工程中标候选人公示">丰惠镇南源村瑞象溪、贾塔中家河、新河头等河道整治工程中标候选人公示</a><span style="float:right;color:#999">2022-10-26</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/26/art_1228987816_59061737.html" target="_blank" title="上虞区章镇镇关山溪(白水水库~塘沿桥)整治工程中标候选人公示">上虞区章镇镇关山溪(白水水库~塘沿桥)整治工程中标候选人公示</a><span style="float:right;color:#999">2022-10-26</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/25/art_1228987816_59061690.html" target="_blank" title="2022年丰惠镇农村生活污水终端提升改造项目-2标中标候选人公示">2022年丰惠镇农村生活污水终端提升改造项目-2标中标候选人公示</a><span style="float:right;color:#999">2022-10-25</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/25/art_1228987816_59061689.html" target="_blank" title="上虞区章镇镇巴弄沿山渠整治工程中标候选人公示">上虞区章镇镇巴弄沿山渠整治工程中标候选人公示</a><span style="float:right;color:#999">2022-10-25</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/25/art_1228987816_59061660.html" target="_blank" title="丰南村南溪(岭下-东风水库)整治工程中标候选人公示">丰南村南溪(岭下-东风水库)整治工程中标候选人公示</a><span style="float:right;color:#999">2022-10-25</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/24/art_1228987816_59061608.html" target="_blank" title="5万吨每日工业污水处理异地扩建项目-厂外管线工程材料采购中标候选人公示">5万吨每日工业污水处理异地扩建项目-厂外管线工程材料采购中标候选人公示</a><span style="float:right;color:#999">2022-10-24</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/24/art_1228987816_59061603.html" target="_blank" title="城北体育训练馆及附属工程中标候选人公示">城北体育训练馆及附属工程中标候选人公示</a><span style="float:right;color:#999">2022-10-24</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/24/art_1228987816_59061576.html" target="_blank" title="浙江震元制药有限公司生物定向合成组氨酸、左旋多巴等系列产品及高端原料药上虞产业化基地项目全过程工程咨询中标候选人公示">浙江震元制药有限公司生物定向合成组氨酸、左旋多巴等系列产品及高端原料药上虞产业化...</a><span style="float:right;color:#999">2022-10-24</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/21/art_1228987816_59061473.html" target="_blank" title="上虞区丁宅乡大齐岙水库东侧排涝河整治工程中标候选人公示">上虞区丁宅乡大齐岙水库东侧排涝河整治工程中标候选人公示</a><span style="float:right;color:#999">2022-10-21</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/21/art_1228987816_59061472.html" target="_blank" title="上虞区永和镇后头汶河道及池塘整治工程中标候选人公示">上虞区永和镇后头汶河道及池塘整治工程中标候选人公示</a><span style="float:right;color:#999">2022-10-21</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/21/art_1228987816_59061451.html" target="_blank" title="尼龙坎河、烂田山塘排涝河等河道整治工程中标候选人公示">尼龙坎河、烂田山塘排涝河等河道整治工程中标候选人公示</a><span style="float:right;color:#999">2022-10-21</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/21/art_1228987816_59061430.html" target="_blank" title="上虞区汤浦镇蒋村电排站改造工程中标候选人公示">上虞区汤浦镇蒋村电排站改造工程中标候选人公示</a><span style="float:right;color:#999">2022-10-21</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/20/art_1228987816_59061398.html" target="_blank" title="君尊美邸南侧道路提升工程中标候选人公示">君尊美邸南侧道路提升工程中标候选人公示</a><span style="float:right;color:#999">2022-10-20</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/20/art_1228987816_59061393.html" target="_blank" title="曹娥街道蒿坝石门塘场地硬化及围墙工程中标候选人公示">曹娥街道蒿坝石门塘场地硬化及围墙工程中标候选人公示</a><span style="float:right;color:#999">2022-10-20</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/20/art_1228987816_59061358.html" target="_blank" title="城北体育训练馆及附属工程监理中标候选人公示">城北体育训练馆及附属工程监理中标候选人公示</a><span style="float:right;color:#999">2022-10-20</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/18/art_1228987816_59061205.html" target="_blank" title="杭州湾经开区道路路网提升工程—东一区朝阳二路中标候选人公示">杭州湾经开区道路路网提升工程—东一区朝阳二路中标候选人公示</a><span style="float:right;color:#999">2022-10-18</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/14/art_1228987816_59060982.html" target="_blank" title="上虞区汤浦镇畚箕窝山塘、小岙山塘整治工程中标候选人公示">上虞区汤浦镇畚箕窝山塘、小岙山塘整治工程中标候选人公示</a><span style="float:right;color:#999">2022-10-14</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/14/art_1228987816_59060952.html" target="_blank" title="曹娥江旅游度假区省级复核提升项目EPC设计采购施工总承包中标候选人公示">曹娥江旅游度假区省级复核提升项目EPC设计采购施工总承包中标候选人公示</a><span style="float:right;color:#999">2022-10-14</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/13/art_1228987816_59060914.html" target="_blank" title="小越街道越东村新建污水管网工程中标候选人公示">小越街道越东村新建污水管网工程中标候选人公示</a><span style="float:right;color:#999">2022-10-13</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/13/art_1228987816_59060870.html" target="_blank" title="浙东运河(曹娥段)综合整治工程(三标段)监理中标候选人公示">浙东运河(曹娥段)综合整治工程(三标段)监理中标候选人公示</a><span style="float:right;color:#999">2022-10-13</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/13/art_1228987816_59060867.html" target="_blank" title="上虞区汤浦镇长山溪整治工程(一期)中标候选人公示">上虞区汤浦镇长山溪整治工程(一期)中标候选人公示</a><span style="float:right;color:#999">2022-10-13</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/12/art_1228987816_59060839.html" target="_blank" title="上浦闸灌区续建配套与节水改造调增项目水闸改造维修中标候选人公示">上浦闸灌区续建配套与节水改造调增项目水闸改造维修中标候选人公示</a><span style="float:right;color:#999">2022-10-12</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/12/art_1228987816_59060819.html" target="_blank" title="绍兴市上虞区崧厦街道社区卫生服务中心杭州湾社区卫生服务站项目中标候选人公示">绍兴市上虞区崧厦街道社区卫生服务中心杭州湾社区卫生服务站项目中标候选人公示</a><span style="float:right;color:#999">2022-10-12</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/11/art_1228987816_59060719.html" target="_blank" title="梁朱线提升项目中标候选人第二次公示">梁朱线提升项目中标候选人第二次公示</a><span style="float:right;color:#999">2022-10-11</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/11/art_1228987816_59060738.html" target="_blank" title="曹娥庙保养维护工程中标候选人公示">曹娥庙保养维护工程中标候选人公示</a><span style="float:right;color:#999">2022-10-11</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/11/art_1228987816_59060726.html" target="_blank" title="上虞区梁湖街道闹溪小流域南穴段整治工程中标候选人公示">上虞区梁湖街道闹溪小流域南穴段整治工程中标候选人公示</a><span style="float:right;color:#999">2022-10-11</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/11/art_1228987816_59060692.html" target="_blank" title="梁朱线提升项目中标候选人公示">梁朱线提升项目中标候选人公示</a><span style="float:right;color:#999">2022-10-11</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/10/art_1228987816_59060628.html" target="_blank" title="杭绍台铁路(东关街道)外部环境整治工程中标候选人公示">杭绍台铁路(东关街道)外部环境整治工程中标候选人公示</a><span style="float:right;color:#999">2022-10-10</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/10/art_1228987816_59060574.html" target="_blank" title="上虞区丰惠镇凤鸣溪(瓦窑段)整治工程中标候选人公示">上虞区丰惠镇凤鸣溪(瓦窑段)整治工程中标候选人公示</a><span style="float:right;color:#999">2022-10-10</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/9/art_1228987816_59060535.html" target="_blank" title="永和镇三桥村庵河及长河贯通工程中标候选人公示">永和镇三桥村庵河及长河贯通工程中标候选人公示</a><span style="float:right;color:#999">2022-10-09</span></li>]]></record><record><![CDATA[<li><a href="/art/2022/10/9/art_1228987816_59060500.html" target="_blank" title="康居路小学新建工程监理中标候选人公示">康居路小学新建工程监理中标候选人公示</a><span style="float:right;color:#999">2022-10-09</span></li>]]></record></recordset></datastore>

问题解决 :

首先我们需要了解 <![CDATA[ ]]> 是什么:
<![CDATA[ ]]> 是什么,这是XML语法。在CDATA内部的所有内容都会被解析器忽略。

所以我们在返回数据响应中, 有这个东西,我们取值下一层的时候,解释器忽略了里面的数据源,所以我们可以使用replace 把文本替换掉:
代码如下所示

data = response.text.replace('<record>','').replace('</record>','').replace('<![CDATA[','').replace(']]>',"")
html = etree.HTML(data)
li = html.xpath('//li')
for i in li:
    url = i.xpath('./a/@href')[0]
    title = i.xpath('./a/@title')[0]
详细解析如下:
response = requests.get(url)
data = response.text.replace('<record>','').replace('</record>','').replace('<![CDATA[','').replace(']]>',"")

通过replace方法替换里面的文本数据,替换为空 ,可以得到
在这里插入图片描述
然后导入这个包:

from lxml import etree

实例化这个对象

html = etree.HTML(data)

剩下得 就是正常编写xpath 语句了;

li = html.xpath('//li')
for i in li:
    url = i.xpath('./a/@href')[0]
    title = i.xpath('./a/@title')[0]

到此,数据可以正常取值了;
在这里插入图片描述

当然也可以使用正则表达式:
date = re.findall(r'<li>(.*?)</li>', str(demo))

在循环,进行每个数据的提取;

问题总结:

XML CDATA

XML 文档中的所有文本均会被解析器解析。

只有 CDATA 区段中的文本 会被解析器 忽略

在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值