文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
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 文档。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论