文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
14.4 存储数据到 MySQL
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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论