You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python实现网页爬虫抓取文本分多文件存储(每文件存100+条)

嘿,这个需求很常见,我来给你捋个清晰的实现思路,附带可直接复用的代码片段~

Python实现批量文本拆分存储方案

核心思路

逻辑其实很直白:先把抓取到的所有文本汇总到一个列表里,然后按每100条为一组切割成小批次,最后把每个批次的内容写入单独的文件。就算最后一组不足100条,直接存到最后一个文件就行。

具体实现代码

假设你已经把所有抓取到的文本存在了一个叫all_texts的列表里(每条文本是一个独立字符串),下面的代码可以直接拿来用:

# 模拟抓取到的10000条数据,实际替换成你的爬虫返回结果
all_texts = [f"第{i}条抓取内容" for i in range(1, 10001)]

# 每个文件存储的条数,可根据需求调整(比如改成150)
batch_size = 100

# 计算需要生成的文件总数(向上取整,避免遗漏剩余内容)
total_files = (len(all_texts) + batch_size - 1) // batch_size

# 循环拆分并写入文件
for file_idx in range(total_files):
    # 计算当前批次的起始/结束索引
    start = file_idx * batch_size
    end = start + batch_size
    current_batch = all_texts[start:end]
    
    # 生成有序的文件名,方便后续排序查看
    filename = f"text_batch_{file_idx + 1:03d}.txt"
    
    # 写入文件,指定utf-8编码避免中文乱码
    with open(filename, 'w', encoding='utf-8') as f:
        # 每条文本占一行,也可改成空行分隔:'\n\n'.join(current_batch)
        f.write('\n'.join(current_batch))
    
    print(f"✅ 已完成 {filename} 写入,共 {len(current_batch)} 条内容")

几个实用细节补充

  • 编码问题:一定要指定encoding='utf-8',不然抓取内容里有中文时大概率会乱码。
  • 文件名排序:用{file_idx + 1:03d}生成三位数字序号,文件会按001、002...的顺序排列,不会出现1、10、100乱序的情况。
  • 异常防护:如果爬虫过程中可能出现中断,建议给写入操作加个异常捕获,避免前功尽弃:
try:
    with open(filename, 'w', encoding='utf-8') as f:
        f.write('\n'.join(current_batch))
    print(f"✅ 已完成 {filename} 写入,共 {len(current_batch)} 条内容")
except Exception as e:
    print(f"❌ 写入 {filename} 失败,错误信息:{str(e)}")

这样处理下来,不管你抓了10000条还是更多内容,都能自动拆分到对应的文件里啦~

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

火山引擎 最新活动