目录

一、写在前面:为啥突然想聊这个?

二、先聊聊 “数据存储经”

1、为啥选 CSV?

2、合规爬取是前提 

三、实战环节:用 PyCharm 复现 CSV 存储全流程 

1、准备工作:给 PyCharm “搭环境” 

2、读取 iris.csv 

3、自己写一个 CSV 文件 

4、用 pandas 玩点 “进阶操作” 

四、踩坑总结:很重要 !

1、编码别偷懒

2、路径别瞎写

3、用 with 语句更安全

五、最后:从 “看懂” 到 “会写”,只差一步动手 


一、写在前面:为啥突然想聊这个?

    刚开始学爬虫的时候,要知道“数据爬下来不算完,存得明白才叫真本事”。当时看着CSV 表格截图,总觉得 “不就是存个表格吗,有啥难的”。直到自己上手用 PyCharm 敲代码,才发现从理论到实操,中间藏着不少 “小坑”—— 比如文件路径总写错、中文存进去变成乱码、不知道怎么对齐表格字段…… 折腾了两天总算摸透了门道,今天就借着这篇博客,跟大家聊聊我是怎么把 PPT 里的知识点变成实实在在的 CSV 文件的。

二、先聊聊 “数据存储经”

1、为啥选 CSV?

    对比了 TXT、CSV、Excel 几种格式,说 CSV 是 “爬虫新手友好型”—— 结构简单(就是逗号分隔的表格)、体积小、几乎所有工具都能打开(txt、Excel、Python 库都认它)。不像 TXT 找数据得翻半天,也不像 Excel 需要额外装库,对我们这种刚入门的人来说,简直是 “懒人福音”。

2、合规爬取是前提 

    虽然这次重点是存数据,但  “爬虫不能瞎爬”。Robots 协议、User-Agent 限制这些,老师反复强调 “先看规矩再动手”。比如爬学校官网的新闻前,我特意去查了robots.txt,确认允许爬取才开始,这点新手一定要记牢! 

三、实战环节:用 PyCharm 复现 CSV 存储全流程 

1、准备工作:给 PyCharm “搭环境” 

    我用的是 PyCharm Community 版(免费够用),第一步当然是装库。PPT 里提到csv库是 Python 自带的,但如果要用pandas处理更复杂的表格,就得自己装:

    在 PyCharm 的 Terminal 里敲命令:

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

(加镜像源是之前文章有的,下载速度能快一倍,实测有效!)

2、读取 iris.csv 

      iris.csv里存了鸢尾花的数据集,我的目标是用代码把它读出来,看看里面到底有啥。

      csv.reader()示例写代码,刚开始踩了个坑:文件路径总报错。原来我把iris.csv随便存在了桌面,代码里写./iris.csv根本找不到。后来把文件挪到 PyCharm 的项目文件夹里,用相对路径才搞定。

      代码长这样:

import csv

# 用with语句打开文件,自动处理关闭,比直接open()安全
with open('./iris.csv', 'r', encoding='utf-8') as csvfile:
    # 创建reader对象,按行读取
    reader = csv.reader(csvfile)
    # 循环打印每一行数据
    for i, row in enumerate(reader):
        # 只打印前5行,避免输出太多刷屏
        if i < 5:
            print(row)

      运行结果和 PPT 里的示例对上了:第一行是表头['Sepal.Length', 'Sepal.Width', ...],后面跟着具体数据,那一刻居然有点小成就感~ 

3、自己写一个 CSV 文件 

      光读还不够,得试试写数据。用csv.writer()写列表,用csv.DictWriter()写字典(支持中文更方便)。 我先试了写列表(存了几个同学的信息):

import csv

# 打开文件时加newline='',避免空行问题(PPT里没说,但实测不加会多空行)
with open('classmates.csv', 'w', encoding='utf-8', newline='') as csvfile:
    writer = csv.writer(csvfile)
    # 先写表头
    writer.writerow(['学号', '姓名', '性别'])
    # 再写数据行
    writer.writerow(['2023001', '张三', '男'])
    writer.writerow(['2023002', '李四', '女'])

      打开生成的classmates.csv,用 Excel 打开是整整齐齐的表格,比手动输入快多了!

      后来又试了字典写法(支持中文更稳妥),把代码里的writer换成DictWriter,指定fieldnames当表头,写的时候直接传字典,连字段顺序都不用操心,这点比列表方便太多。

4、用 pandas 玩点 “进阶操作” 

      pandas能一键转 CSV/Excel,我抱着试试的心态试了下。同样是存同学信息,用pandas一行代码就搞定存储,还自动加了索引: 

import pandas as pd

# 先准备一个字典,键是表头,值是列表
data = {
    '学号': ['2023003', '2023004'],
    '姓名': ['王五', '赵六'],
    '专业': ['计算机', '软件工程']
}
# 转成DataFrame(pandas的核心数据结构,像个表格)
df = pd.DataFrame(data)
# 存成CSV,index=False去掉自动生成的索引列
df.to_csv('major.csv', index=False, encoding='utf-8')

      打开major.csv一看,比用csv库写的更整洁,难怪老师说处理大量数据时pandas是 “神器”。 

四、踩坑总结:很重要 !

1、编码别偷懒

      刚开始写中文名字时,存进去总是乱码。后来才发现 写了encoding='utf-8',但自己嫌麻烦没加,加上之后立马正常了 —— 中文数据一定要指定编码! 

2、路径别瞎写

      相对路径(./文件名)只在文件和代码同文件夹时管用,不然就得写绝对路径(比如D:/project/iris.csv),但 PyCharm 里用相对路径更方便管理。 

3、用 with 语句更安全

      一开始直接open()文件,写完忘了close(),结果文件被占用删不掉。换成with open(...) as f:后,再也没出过这问题,这是 强调的 “好习惯”。 

五、最后:从 “看懂” 到 “会写”,只差一步动手 

      以前看 PPT 总觉得 “这有啥难的”,真自己敲代码才发现,很多细节只有实操才会注意到。比如csv.writer()csv.DictWriter()的区别,pandasto_csv()怎么去掉多余的索引 —— 这些都得自己试一遍才记得牢。

接下来打算试试老师布置的作业:爬学校新闻存成 CSV,争取用pandas优化一下格式。如果大家也在学爬虫数据存储,不妨从 CSV 开始练手,真的不难,动手敲代码比光看 PPT 有用多啦~     


 (偷偷说:PyCharm 的自动补全功能救了我,输csv.wri会显示writer(),新手一定要善用!) 

 

 

 

 

 

 

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐