在Python中进行数据爬虫并将数据存储起来,通常有以下几种方法:
-
保存到文件:
- CSV文件:使用
csv
模块将数据写入CSV文件。import csv data = https://www.yisu.com/ask/[['Name', 'Age'], ['Alice', 25], ['Bob', 30]] with open('output.csv', 'w', newline='', encoding='utf-8') as file: writer = csv.writer(file) writer.writerows(data)
- JSON文件:使用
json
模块将数据写入JSON文件。import json data = https://www.yisu.com/ask/{'Name': 'Alice', 'Age': 25} with open('output.json', 'w', encoding='utf-8') as file: json.dump(data, file, ensure_ascii=False, indent=4)
- 文本文件:将数据写入纯文本文件。
data = 'https://www.yisu.com/ask/Alice,25/nBob,30' with open('output.txt', 'w', encoding='utf-8') as file: file.write(data)
- CSV文件:使用
-
保存到数据库:
- SQLite:使用
sqlite3
模块将数据存储到SQLite数据库。import sqlite3 conn = sqlite3.connect('example.db') cursor = conn.cursor() cursor.execute('''CREATE TABLE IF NOT EXISTS users (name TEXT, age INTEGER)''') data = https://www.yisu.com/ask/[('Alice', 25), ('Bob', 30)] cursor.executemany('INSERT INTO users VALUES (?, ?)', data) conn.commit() conn.close()
- MySQL:使用
mysql-connector-python
或pymysql
模块将数据存储到MySQL数据库。import mysql.connector conn = mysql.connector.connect( host='localhost', user='yourusername', password='yourpassword', database='mydatabase' ) cursor = conn.cursor() cursor.execute('''CREATE TABLE IF NOT EXISTS users (name VARCHAR(255), age INT)''') data = https://www.yisu.com/ask/[('Alice', 25), ('Bob', 30)] cursor.executemany('INSERT INTO users VALUES (%s, %s)', data) conn.commit() conn.close()
- PostgreSQL:使用
psycopg2
模块将数据存储到PostgreSQL数据库。import psycopg2 conn = psycopg2.connect( host='localhost', user='yourusername', password='yourpassword', database='mydatabase' ) cursor = conn.cursor() cursor.execute('''CREATE TABLE IF NOT EXISTS users (name VARCHAR(255), age INT)''') data = https://www.yisu.com/ask/[('Alice', 25), ('Bob', 30)] cursor.executemany('INSERT INTO users VALUES (%s, %s)', data) conn.commit() conn.close()
- SQLite:使用
-
保存到文件系统:
- JSON Lines:将数据逐行写入JSON文件。
import json data = https://www.yisu.com/ask/[{'Name': 'Alice', 'Age': 25}, {'Name': 'Bob', 'Age': 30}] with open('output.jsonl', 'w', encoding='utf-8') as file: for item in data: file.write(json.dumps(item) + '\n')
- Pickle:使用
pickle
模块将数据序列化后保存到文件。import pickle data = https://www.yisu.com/ask/{'Name': 'Alice', 'Age': 25} with open('output.pkl', 'wb') as file: pickle.dump(data, file)
- JSON Lines:将数据逐行写入JSON文件。
-
保存到缓存:
- Redis:使用
redis-py
模块将数据存储到Redis缓存。import redis r = redis.Redis(host='localhost', port=6379, db=0) data = https://www.yisu.com/ask/{'Name': 'Alice', 'Age': 25} r.set('user:1', json.dumps(data))
- Redis:使用
选择哪种存储方式取决于你的具体需求,例如数据量大小、是否需要快速访问、是否需要跨系统共享等。