Scrapy 中的数据库数据保存涉及以下步骤:配置数据库连接(DATABASE_* 设置);创建 Item Pipeline(如 DatabasePipeline);配置 Item Pipeline(ITEM_PIPELINES 中);实现数据保存逻辑(process_item 方法);运行爬虫并检查数据库中的数据。

Scrapy 爬虫数据入库教程
如何将 Scrapy 爬取的数据保存到数据库?
使用 Scrapy 将数据保存到数据库涉及几个步骤:
1. 创建数据库连接
- 在
settings.py文件中配置数据库连接设置。
# 数据库引擎 DATABASE_ENGINE = 'mysql' # 数据库用户名 DATABASE_USER = 'root' # 数据库密码 DATABASE_PASSWORD = 'mypassword' # 数据库主机地址 DATABASE_HOST = 'localhost' # 数据库名称 DATABASE_NAME = 'scrapydata'
2. 定义 Item Pipeline
m18麦考林整站 for Ecshop v2.7.3 安装方法: 1,解压rar包上传到网站根目录 2,导入sql数据库文件,到你的数据库里,可以phpmyadmin等软件 3,修改data里config.php里面的数据库 用户名 密码等信息 为你自己的数据库信息 4,安装完毕之后的后台用户名密码为: 后台地址:域名/admin 用户名:admin 密码:admin123 模板使用教程: htt
- 创建一个 Item Pipeline 来处理爬取到的数据并将其入库。
from scrapy.pipelines.images import ImagesPipeline
from itemadapter import ItemAdapter
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
class DatabasePipeline(ImagesPipeline):
def __init__(self, *args, **kwargs):
# 创建 SQLAlchemy 引擎
self.engine = create_engine("mysql+pymysql://{}:{}@{}:{}/{}".format(
DATABASE_USER, DATABASE_PASSWORD, DATABASE_HOST, DATABASE_PORT, DATABASE_NAME))
# 创建会话工厂
self.session_factory = sessionmaker(bind=self.engine)
def process_item(self, item, spider):
# 获取 Item 适配器
adapter = ItemAdapter(item)
# 创建数据库会话
session = self.session_factory()
# 将 Item 数据保存到数据库
# ...
# 提交会话并关闭连接
session.commit()
session.close()
return item3. 配置 Item Pipeline
- 在
settings.py文件中将自定义 Item Pipeline 添加到ITEM_PIPELINES设置中。
ITEM_PIPELINES = {
'myproject.pipelines.DatabasePipeline': 300,
}4. 实现数据保存逻辑
- 在 Item Pipeline 的
process_item方法中实现数据保存逻辑。 - 使用 SQLAlchemy 或其他 ORM 框架与数据库交互。
示例:
# 将 Item 中的标题字段保存到数据库
title = adapter.get('title')
new_record = MyModel(title=title)
session.add(new_record)5. 运行爬虫
- 确保数据库服务正在运行。
- 运行 Scrapy 爬虫。
- 检查数据库中是否成功保存了爬取到的数据。









