爬虫数据存储

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 【8月更文挑战第16天】

在 Python 爬虫中,数据存储是一个重要的环节,它涉及到将爬取的数据保存到某种持久化存储介质中,以便于后续的分析和处理。以下是几种常见的数据存储方式及其原理和代码示例:

1. 文件存储

原理:将数据直接写入到文件中,如文本文件、CSV 文件等。

代码示例(保存为 CSV):

import csv

# 假设有一个列表,包含多个字典,每个字典代表一条数据
data = [
    {
   'name': 'John', 'age': 30, 'city': 'New York'},
    {
   'name': 'Anna', 'age': 22, 'city': 'Los Angeles'},
]

# 写入 CSV 文件
with open('people.csv', 'w', newline='', encoding='utf-8') as file:
    writer = csv.DictWriter(file, fieldnames=data[0].keys())
    writer.writeheader()
    writer.writerows(data)

2. 关系型数据库存储

原理:将数据存储到关系型数据库中,如 MySQL、PostgreSQL 等,通过表结构来组织数据。

代码示例(使用 SQLite):

import sqlite3

# 连接到 SQLite 数据库
# 如果文件不存在,会自动在当前目录创建一个数据库文件
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 创建一个表
cursor.execute('''
CREATE TABLE IF NOT EXISTS people (
    name TEXT,
    age INTEGER,
    city TEXT
)
''')

# 插入数据
data = [
    ('John', 30, 'New York'),
    ('Anna', 22, 'Los Angeles'),
]

cursor.executemany('INSERT INTO people (name, age, city) VALUES (?, ?, ?)', data)

# 提交事务
conn.commit()

# 关闭连接
conn.close()

3. 非关系型数据库存储(NoSQL)

原理:将数据存储到非关系型数据库中,如 MongoDB、Redis 等,这些数据库通常更加灵活,不需要固定的表结构。

代码示例(使用 MongoDB):

from pymongo import MongoClient

# 连接到 MongoDB
client = MongoClient('localhost', 27017)

# 选择数据库
db = client['mydatabase']

# 选择集合
collection = db['people']

# 插入数据
data = [
    {
   'name': 'John', 'age': 30, 'city': 'New York'},
    {
   'name': 'Anna', 'age': 22, 'city': 'Los Angeles'},
]

collection.insert_many(data)

4. 使用 Pandas 库

原理:Pandas 是一个数据分析库,它提供了 DataFrame 对象,可以方便地处理和存储数据。

代码示例

import pandas as pd

# 创建一个 DataFrame
df = pd.DataFrame({
   
    'name': ['John', 'Anna'],
    'age': [30, 22],
    'city': ['New York', 'Los Angeles'],
})

# 保存到 CSV 文件
df.to_csv('people.csv', index=False)

# 保存到 SQL 数据库
df.to_sql('people', conn, if_exists='replace', index=False)

5. 存储为 JSON

原理:JSON 是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。

代码示例

import json

# 假设有一个字典或列表包含数据
data = [
    {
   'name': 'John', 'age': 30, 'city': 'New York'},
    {
   'name': 'Anna', 'age': 22, 'city': 'Los Angeles'},
]

# 将数据写入 JSON 文件
with open('people.json', 'w', encoding='utf-8') as file:
    json.dump(data, file, ensure_ascii=False, indent=4)

每种存储方式都有其适用场景。文件存储简单易用,适合小型项目或一次性任务。关系型数据库和非关系型数据库适用于需要复杂查询和大规模数据存储的场景。 。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
7月前
|
存储 数据采集 NoSQL
使用Python打造爬虫程序之数据存储与持久化:从网络到硬盘的无缝对接
【4月更文挑战第19天】本文探讨了爬虫中的数据存储与持久化技术,包括文本文件存储、数据库(关系型与非关系型)、NoSQL数据库和键值存储,以及ORM框架的使用。根据数据类型、规模和访问需求选择合适存储方式,并注意数据安全、备份和恢复策略。正确选择和应用这些技术能有效管理和利用爬取数据。
|
7月前
|
存储 数据采集 JSON
Scrapy爬虫数据存储为JSON文件的解决方案
Scrapy爬虫数据存储为JSON文件的解决方案
|
数据采集 存储 数据库连接
Python爬虫中的数据存储和反爬虫策略
Python爬虫中的数据存储和反爬虫策略
|
存储 数据采集 NoSQL
爬虫数据存储技术比较:数据库 vs. 文件 vs. NoSQL
爬虫数据存储技术比较:数据库 vs. 文件 vs. NoSQL
|
数据采集 存储 关系型数据库
【Python】从0开始写爬虫——把扒到的豆瓣数据存储到数据库
1. 我们扒到了什么?   id, 名称, 上映年份,上映日期,所属类目, 导演,主演,片长,评分,星评,评价人数 2. 把这些数据做一个分类。   a..基本信息 :名称, 导演,上映年份, 所属类目, 片长   b.评价信息:评分,星评,评价人数   c.主演表: 主演(我在纠结要不要单独列一张表) 3 .表设计。
1595 0
|
SQL 存储 关系型数据库
爬虫分析之数据存储——基于MySQL,Scrapy
上一篇->爬虫练习之数据整理——基于Pandas 上上篇->爬虫练习之数据清洗——基于Pandas 配置MySql 关于MySQL在Ubuntu的Pycharm上的配置,可以参考这篇文章中的第三部分 Mac安装mysql及终端操作mysql与pych...
1426 0
|
25天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
73 6
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
192 4
|
4月前
|
数据采集 存储 搜索推荐
打造个性化网页爬虫:从零开始的Python教程
【8月更文挑战第31天】在数字信息的海洋中,网页爬虫是一艘能够自动搜集网络数据的神奇船只。本文将引导你启航,用Python语言建造属于你自己的网页爬虫。我们将一起探索如何从无到有,一步步构建一个能够抓取、解析并存储网页数据的基础爬虫。文章不仅分享代码,更带你理解背后的逻辑,让你能在遇到问题时自行找到解决方案。无论你是编程新手还是有一定基础的开发者,这篇文章都会为你打开一扇通往数据世界的新窗。
|
5月前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
【7月更文挑战第31天】在网络数据的海洋中,使用Python的`requests`库构建网络爬虫就像探索未知的航船。HTTP协议指导爬虫与服务器交流,收集信息。HTTP请求包括请求行、头和体,响应则含状态行、头和体。`requests`简化了发送各种HTTP请求的过程。
86 4