爬出的数据同时存入csv文件和数据库文件代码
时间: 2025-03-04 21:21:01 浏览: 35
### 将爬虫抓取的数据同时存储到CSV文件和MySQL数据库
为了实现这一目标,可以按照如下方式编写 Python 代码。这段代码不仅展示了如何将数据保存至 CSV 文件,还说明了怎样将其存入 MySQL 数据库。
#### 导入库
首先需要导入必要的库来支持操作:
```python
import mysql.connector
import csv
from datetime import datetime
```
#### 连接并初始化 MySQL 数据库
建立与 MySQL 的连接,并准备用于插入记录的 SQL 语句:
```python
db_connection = mysql.connector.connect(
host='localhost',
user='root', # 用户名
password='password', # 密码
database='spider_db' # 使用的数据库名称
)
cursor = db_connection.cursor()
create_table_query = """
CREATE TABLE IF NOT EXISTS articles (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
link TEXT,
date DATE
);
"""
cursor.execute(create_table_query)
```
#### 准备要存储的数据
这里模拟了一些简单的文章列表作为爬虫获取的结果:
```python
data = [
["Python教程", "https://example.com", "2024-10-19"],
["爬虫入门", "https://example2.com", "2024-10-18"]
]
```
#### 同时向 CSV 文件和 MySQL 插入数据
遍历 `data` 列表中的每一项,依次执行写入 CSV 和插入数据库的动作:
```python
with open("articles.csv", mode="w", newline='', encoding="utf-8") as file:
writer = csv.writer(file)
writer.writerow(["标题", "链接", "日期"]) # 写入列头
insert_records = []
for item in data:
title, link, date_str = item
# 转换日期格式以便于存入数据库
formatted_date = datetime.strptime(date_str, "%Y-%m-%d").date()
# 添加到批量插入队列中
insert_records.append((title, link, formatted_date))
# 写入CSV文件
writer.writerow(item)
# 执行批量插入命令
insert_sql = """INSERT INTO articles (title, link, date) VALUES (%s, %s, %s);"""
cursor.executemany(insert_sql, insert_records)
db_connection.commit() # 提交更改以确保它们被永久化
print(f"{len(insert_records)} 条记录成功插入.")
```
以上就是完整的解决方案[^1]。此方案利用了标准库 `csv` 对象来进行 CSV 文件的操作;而对于 MySQL,则借助第三方模块 `mysql.connector` 完成相应的增删改查功能。
阅读全文
相关推荐


















