美文网首页
使用ORM模型操作MySQL数据库:Python爬虫数据持久化实

使用ORM模型操作MySQL数据库:Python爬虫数据持久化实

作者: 玉宾 | 来源:发表于2024-02-07 15:45 被阅读0次

    源码分享

    https://docs.qq.com/sheet/DUHNQdlRUVUp5Vll2?tab=BB08J2

    在Python爬虫开发中,数据持久化是一个重要的步骤。通常,我们会将爬取的数据保存到数据库中。本篇博客将介绍如何使用对象关系映射(ORM)模型在Python中操作MySQL数据库,以便更加高效和安全地管理爬虫数据。

    ORM简介

    ORM即对象关系映射,它是一种数据库抽象技术,使得开发者能够以编程语言中的对象的方式来操作数据库。Python社区中流行的ORM框架有SQLAlchemy和Django ORM等。

    SQLAlchemy入门

    SQLAlchemy是Python中最著名的ORM工具之一,它提供了强大的数据库操作能力。以下是如何使用SQLAlchemy操作MySQL数据库的详细步骤。

    安装必要库

    首先,确保已经安装了SQLAlchemy和MySQL的Python适配器,例如mysql-connector-python:

    pip install sqlalchemy mysql-connector-python

    定义模型

    定义一个模型,它映射到MySQL数据库中的一个表。例如,如果您的爬虫正在爬取书籍信息,您可能会有一个模型如下:

    from sqlalchemy import create_engine, Column, Integer, String, Float

    from sqlalchemy.ext.declarative import declarative_base

    from sqlalchemy.orm import sessionmaker

    # 定义基类

    Base = declarative_base()

    # 定义Book模型,它对应于MySQL中的一个表

    class Book(Base):

        __tablename__ = 'books'  # 数据库中表的名字

        id = Column(Integer, primary_key=True)

        title = Column(String(200))

        author = Column(String(100))

        ratings = Column(Float)

        def __repr__(self):

            return f"<Book(title={self.title}, author={self.author}, ratings={self.ratings})>"

    连接数据库

    创建一个与MySQL数据库的连接,并建立一个Session来操作数据库。

    # 创建连接到数据库的引擎

    engine = create_engine('mysql+mysqlconnector://user:password@localhost:3306/dbname')

    # 创建所有表(如果它们还不存在)

    Base.metadata.create_all(engine)

    # 创建Session类

    Session = sessionmaker(bind=engine)

    # 创建实际的Session对象

    session = Session()

    请将user, password, localhost, 3306和dbname替换为实际的MySQL连接参数。

    操作数据库

    现在可以通过创建模型的实例来插入新记录,通过查询来获取数据,通过修改模型实例来更新记录,或者删除记录。

    # 插入新书籍

    new_book = Book(title="Python编程:从入门到实践", author="Eric Matthes", ratings=4.5)

    session.add(new_book)

    session.commit()

    # 查询书籍数据

    books = session.query(Book).filter_by(author="Eric Matthes").all()

    for book in books:

        print(book)

    # 更新书籍数据

    book_to_update = session.query(Book).get(1)  # 假设id为1的书籍存在

    if book_to_update:

        book_to_update.ratings = 4.7

        session.commit()

    # 删除书籍数据

    book_to_delete = session.query(Book).get(1)

    if book_to_delete:

        session.delete(book_to_delete)

        session.commit()

    结语

    ORM提供了一种方便的方式来操作数据库,使得数据库操作更加直观和安全。在爬虫项目中,使用ORM可以提高代码的可读性和可维护性,并且有助于避免SQL注入这样的安全问题。本篇博客介绍了如何使用SQLAlchemy框架与MySQL交互,希望能帮助你在接下来的爬虫项目中更高效地处理数据。

    使用ORM模型操作数据库是现代Web开发的最佳实践之一,而在爬虫开发中同样适用。始终记住,每一个爬虫都应当负责任地对待数据和网络资源。祝您的爬虫项目顺利!

    相关文章

      网友评论

          本文标题:使用ORM模型操作MySQL数据库:Python爬虫数据持久化实

          本文链接:https://www.haomeiwen.com/subject/juvhadtx.html