Scrapy把爬取的数据存入MySql数据库中
1、安装MySql数据库
网上有很多教程,我随便找了一个 https://www.runoob.com/mysql/mysql-install.html 可以参考一下。
2、安装python模块
安装好数据库之后,在命令行执行
pip install pymysql
3、创建数据库
安装数据库之后,我们可以有两种方式创建数据库:
- 使用Navicat for MySQL这个软件,可视化创建
软件的下载地址:https://pan.baidu.com/s/1TJL66ZdJeeG1dSSjYda2Zg
提取码:3835
软件安装之后需要注意一点,点击PatchNavicat.exe然后找到第一个软件的安装目录选择navicat.exe,当提示successful就完成了。
创建连接ip为localhost
然后打开创建名字为douban的数据库,创建表douban,表字段为
- 使用命令行创建
create database douban;
create table top250(ranking int primary key,
movie_name varchar(255),
score varchar(255),
score_num varchar(255)
);
4、写pipelines通道
在我的上一篇博客:https://blog.csdn.net/qq_35006802/article/details/90447285 里已经写了爬取豆瓣Top250电影的爬虫,接下来我们需要把爬取到的数据存入到MySQL数据库中。
接下来执行的操作就是在pipelines.py文件里编写如下代码:
import pymysql.cursors
class DemoPipeline(object):
def __init__(self):
self.connect = pymysql.connect(
host="localhost",
port=3306,
use_unicode=True,
user="root",
passwd="123456",
db="douban",
)
self.cursor = self.connect.cursor()
def process_item(self, item, spider):
self.cursor.execute(
'''insert into douban(ranking,movie_name,score,score_num) values (%d,%s,%s,%s)''',
(item['ranking'],
item['movie_name'],
item['score'],
item['score_num'])
)
self.connect.commit()
return item
开启管道
ITEM_PIPELINES = {
'demo.pipelines.DemoPipeline': 300,
}
运行Scrapy学习笔记(一)里写的run.py文件。
我们爬取的数据就存到了数据库中。