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

Scrapy 爬虫数据入库教程
如何将 Scrapy 爬取的数据保存到数据库?
使用 Scrapy 将数据保存到数据库涉及几个步骤:
1. 创建数据库连接
settings.py 文件中配置数据库连接设置。<code class="python"># 数据库引擎 DATABASE_ENGINE = 'mysql' # 数据库用户名 DATABASE_USER = 'root' # 数据库密码 DATABASE_PASSWORD = 'mypassword' # 数据库主机地址 DATABASE_HOST = 'localhost' # 数据库名称 DATABASE_NAME = 'scrapydata'</code>
2. 定义 Item Pipeline
<code class="python">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 item</code>3. 配置 Item Pipeline
settings.py 文件中将自定义 Item Pipeline 添加到 ITEM_PIPELINES 设置中。<code class="python">ITEM_PIPELINES = {
'myproject.pipelines.DatabasePipeline': 300,
}</code>4. 实现数据保存逻辑
process_item 方法中实现数据保存逻辑。示例:
<code class="python"># 将 Item 中的标题字段保存到数据库
title = adapter.get('title')
new_record = MyModel(title=title)
session.add(new_record)</code>5. 运行爬虫
以上就是scrapy爬虫数据入库教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号