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

网页爬取循环URL生成独立文本文件时遇索引错误求助

问题解决:列表索引错误修复

错误根源

你的代码报错核心原因:

  • 循环变量i是urls中的URL字符串,而file_name是列表类型,列表仅支持整数或切片作为索引,用字符串索引必然触发list indices must be integers or slices, not str错误。
  • 每次循环重复生成file_name列表属于冗余操作,且如果urls的数量和range(37,151)的长度(114个)不匹配,后续还会出现索引越界问题。

修正后的代码

直接在循环中基于URL的遍历序号生成对应文件名,逻辑更简洁高效:

basename = "file_"
# 用enumerate获取从37开始的序号,对应每个URL
for idx, url in enumerate(urls, start=37):
    text = fetch_text(url)
    listToStr = ' '.join([str(elem) for elem in text])
    result = re.sub(r'<.*?>', '', listToStr)
    # 生成当前URL对应的文件名
    file_name = f"{basename}_{idx}.txt"
    with open(file_name, 'w') as f:
        f.write(result)

关键修改点

  1. 用enumerate(urls, start=37)替代原循环:直接获取每个URL的遍历序号(从37开始),彻底避免用URL字符串做索引的问题。
  2. 将basename移到循环外:避免重复定义,提升代码运行效率。
  3. 按需生成单个文件名:不再提前生成整个文件名列表,完全适配urls的数量,不会出现索引不匹配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:50:12