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

如何解决Python网页抓取时出现的字符串索引越界问题

问题根源

  • 第一个逻辑漏洞:你在soup.select匹配不到元素时,将city_list赋值为空字符串,而非空列表。后续你尝试对字符串取索引[2],当字符串长度不足3时,就会直接触发索引越界报错。
  • 第二个逻辑漏洞:即便soup.select返回了列表,你直接写city_list[2]做判断的动作本身就有问题——如果列表长度不足3,取索引的动作会先于判断执行,直接抛出报错,你写的if else逻辑根本不会生效。

修复方案

直接调整逻辑,避免重复调用soup.select,先判断列表长度再取值即可:

# 匹配结果默认是列表,匹配不到返回空列表,不需要额外加else转成空字符串
city_list = soup.select('div.sc-183mtny-0.IconRow___StyledBox-sc-1f6s35j-0.jqaQXH.ilrzEg span.mwxddt-0.IconRow___StyledText-sc-1f6s35j-1.hgfkgN.bkjkrD')
# 先判断列表长度是否≥3,再取对应元素
city = city_list[2].text if len(city_list) >= 3 else ""

内容的提问来源于stack exchange,提问作者user17087759

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:45:03