返回介绍

14.4 存储数据到 MySQL

发布于 2025-04-21 19:15:31 字数 1853 浏览 0 评论 0 收藏

14.4.1 使用 pymysql 操作 MySQL 数据库

存储数据到 MySQL 数据库

也可以把爬取到的数据存储到 MySQL 数据库中。MySQL 数据库的安装这里不再赘述,读者可以上网查询在不同操作系统下的安装方法。要想在 Python 中操作 MySQL 数据库,需要用到 Python 连接 MySQL 的接口包 pymysql,可以使用 pip 安装。

>pip install pymysql 

下面简单讲解 pymysql 的用法。

1. 连接数据库

不同于 MongoDB,MySQL 需要用户事先创建好数据库和表。假设这里已经创建好了数据库 ljdb 和 chengjiao 表,然后就可以使用如下命令连接到创建的数据库。

conn = pymysql.connect(host='127.0.0.1', user='root',
                       passwd='123456', db='ljdb')

2. 执行 SQL 语句

使用 conn.query() 直接执行 SQL 语句;使用 SQL 语句插入数据;使用 conn.commit() 提交执行。

3. 关闭连接

使用 conn.close() 关闭连接。

14.4.2 把链家经纪人成交数据存储到 MySQL 数据库

与上节存储到 MongoDB 配置类似,打开链家经纪人成交项目中的 pipeline 文件,在 open_spider 方法中连接 MySQL 数据库,在 process_item 方法中执行保存数据到数据库,在 close_spider 方法中关闭数据库,修改代码如下。

import pymysql
 
class Pachong5Pipeline(object): 
    def open_spider(self): 
        self.conn = pymysql.connect(host='127.0.0.1', user='root',  
                                    passwd='123456', db='ljdb')#连接数据库 
    def process_item(self, item, spider): 
        #添加数据到 chengjiao 表中 
        self.conn.query( 
"insert chengjiao(name,region,apartment,time,total_price) " 
"values('{}','{}','{}','{}','{}')".format( 
    item['name'], item['region'], item['apartment'],  
    item['time'], item['total_price'])) 
        self.conn.commit()   #执行添加 
    def close_spider(self,spider): 
        self.conn.close()    #关闭连接

然后在 settings.py 中把定义好的 pipeline 启用起来。

ITEM_PIPELINES = {
   'pachong5.pipelines.Pachong5Pipeline': 300, 
} 

在运行这个爬虫时,系统可以把数据存储到 MySQL 数据库中。

上面简单演示了存储数据到 MySQL 的方法。需要注意的是,在 MySQL 中创建数据库和表的时候,要注意设置其编码方式为 utf8,否则可能出现 UnicodeEncodeError。pymysql 还有很多功能和用法,读者可以查看 pymysql 文档。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。