Python爬虫开发:CSS选择器返回文本的字符串提取拆分问题
Python爬虫文本提取方案(基于字符串内置方法)
所有提取需求均可通过Python原生字符串方法实现,无需引入正则表达式或第三方依赖,各场景具体实现如下:
场景1:提取赛季字段
对应选择器返回值:'TEMPORADA 2021-2022'
实现代码:temp_raw = response.css(".print-acta-temp::text").get() # 先去除首尾多余空白,按空白分割后取最后一段即为目标赛季值 season = temp_raw.strip().split()[-1]提取结果:
season = '2021-2022'场景2:拆分独立的日期、时间字段
对应选择器返回值:'Data: 14-05-2022, 19:00h'
实现代码:data_raw = response.css(".print-acta-data::text").get().strip() # 先切掉前缀标识,再按逗号拆分日期和时间块 date_block, time_block = data_raw.split(":", 1)[1].split(",", 1) match_date = date_block.strip() # 去除时间块首尾空白和末尾的h后缀 match_time = time_block.strip().rstrip("h")提取结果:
match_date = '14-05-2022',match_time = '19:00'场景3:拆分赛事级别、赛事名称、分组号三个字段
对应选择器返回值:' CADET PRIMERA DIVISIÓ - GRUP 2'
实现代码:comp_raw = response.css(".print-acta-comp::text").get().strip() split_parts = comp_raw.split() # 分割后第一段为首空格前内容,最后一段为末尾数字,中间段拼接为赛事名称 comp_level = split_parts[0] group_num = split_parts[-1] comp_name = " ".join(split_parts[1:-1])提取结果:
comp_level = 'CADET',comp_name = 'PRIMERA DIVISIÓ - GRUP',group_num = '2'场景4:提取轮次数字段
对应选择器返回值:'Jornada 28'
实现代码:jornada_raw = response.css(".print-acta-jornada::text").get().strip() # 仅按第一个空格分割,取后半段内容 jornada_num = jornada_raw.split(maxsplit=1)[1]提取结果:
jornada_num = '28',如需整数类型可直接用int(jornada_num)转换。
注:所有代码均默认加了
.strip()预处理,可兼容返回值前后意外出现空白字符的场景,鲁棒性更强。
内容的提问来源于stack exchange,提问作者futbolbase celh
相关产品推荐
相关产品推荐

