You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 04:36:23