import csv
with open('./iris.csv', 'r') as csvfile:
reader = csv.reader(csvfile) # 创建reader对象
for row in reader: # 这里应该使用reader而不是read
print(row)
-
文件操作能力:使用
with open(...)
上下文管理器安全地打开和关闭文件,这是处理文件的最佳实践,能自动管理资源释放。 -
CSV 数据处理能力:通过
csv.reader()
创建读取器对象,能够正确解析 CSV 格式的文件内容,处理逗号分隔的数据以及可能包含的引号、换行等特殊情况。 -
迭代处理数据:通过
for row in reader
循环迭代读取 CSV 文件中的每一行数据,将每行数据转换为列表形式进行处理(如打印输出)。
import pandas as pd # 通常使用pd作为pandas的别名,更简洁
result_dict = {
"SNo": ["179001", "179002"],
"SName": ["天天", "阳阳"], # 修正了引号和括号
"SSex": ["男", "女"] # 修正了引号和括号
}
path = "./teacher.csv"
df = pd.DataFrame(result_dict) # 使用pd别名
df.to_csv(path, index=False, encoding="utf-8") # 添加了编码参数和去除索引
代码基础,表格,指在特点环境,编写一个表格,并以自己想要的方法记录爬虫所得信息
注意事项
Robots 协议:爬虫行为的 “交通规则”
Robots 协议,全称网络爬虫排除标准(Robots Exclusion Protocol),是指导网络爬虫规范爬取网站内容的重要准则,通常以robots.txt
文件形式存在于网站根目录。
Robots 协议的核心作用
网络爬虫的大规模爬取行为可能引发一系列问题,包括给 Web 服务器带来巨大资源开销造成性能骚扰、因数据产权归属问题引发法律风险,以及可能突破简单访问控制导致个人隐私泄露。而 Robots 协议正是为了规范爬虫行为,缓解这些问题而产生的。
Robots 协议的关键要素
- 文件要求:必须放置在站点根目录,文件名必须小写为
robots.txt
。 - 核心规则:
User-agent
:指定规则适用的爬虫名称,*
代表对所有爬虫有效。Disallow
:明确不允许抓取的目录。Allow
:指定可允许抓取的目录。
爬虫访问站点的流程
- 检测站点根目录是否存在
robots.txt
文件。 - 若存在,爬虫依据文件定义的范围进行爬取;若不存在,爬虫可访问所有可直接访问的页面。
TXT 文件存储
TXT 文件存储具有操作简单、几乎兼容任何平台的优点,但数据检索不够方便。
- 文件操作基础:通过 Python 内置的
open()
函数创建或打开文件,基本语法为file = open(filename, mode, buffering)
。其中mode
参数决定了文件的读写方式,常见的有:r
:只读,文件不存在则报错,不可写入。w
:写入,文件不存在则创建,覆盖写入。a
:写入,文件不存在则创建,追加写入。- 带
+
的模式如r+
、w+
、a+
则表示可读写。
- 文件路径形式:常用的有三种,如
with open("d:\\yongzhou\\title.txt","a+") as f
、with open(r"d:\yongzhou\title.txt","a+") as f
、with open("d:/yongzhou/title.txt","a+") as f
。
CSV 文件存储
CSV(Comma-Separated Values,逗号分隔值)文件以纯文本形式存储表格数据,每条记录由字段组成,字段间常用逗号或制表符分隔。
-
Python csv 库操作:
- 读取:使用
csv.reader()
函数,语法为csv.reader(csvfile, dialect='excel', **fmtparams)
。例如读取iris.csv
文件:
- 读取:使用
通过以上学习,我们不仅掌握了 Robots 协议的核心内容以确保爬虫行为合规,还熟悉了 TXT 和 CSV 文件的存储方法。在实际应用中,需根据数据特点和需求选择合适的存储方式,并始终遵守相关规范,合法合规地开展爬虫工作。