4. setting.py 中设置配置, 想保存哪个数据库就引入并开启哪个中间件. 也可以两个一起开启. setting 中如下设置:
- from fake_useragent import UserAgent
- # 偷懒的写法, 一般自己定义 USER-AGENT 中间件
- USER_AGENT = UserAgent().Chrome
- ROBOTSTXT_OBEY = False
- DOWNLOAD_DELAY = 3 # 隔三秒爬一次
- ITEM_PIPELINES = {
- 'monogodb.pipelines.MonogodbPipeline': 300, 'monogodb.pipelines.MySQLPipeline': 301,
- }
5. 创建 MySQL 数据库和数据表 注意: python 会自动创建 MongoDB 数据库和对应 collection, 但 MySQL 需要先手动创建. 如果嫌命令创建麻烦, 完全可以使用 Navicat 连接数据库界面操作.
1. 连接 MySQL cmd 中 命令: MySQL -u root -p root
2. 创建数据库: create database maoyan charser ''utf8 (库名必须和代码中库名一致)
3. 切换到已创建数据库创建表: user maoyan
4. 创建表
create table t_maoyan_movie (id int primary key auto_increment,name varchar(20), grade varchar(20));
6. 执行程序插入数据
创建 start.py 文件, 并执行
- from scrapy.cmdline import execute
- execute('scrapy crawl maoyan'.split())
也可以在终端中输入: scrapy crawl maoyan
7. 结果:
1.MySQL 中结果
可以看到有 90 条数据. 因为只爬了前三页, 一页 30 条. 可以在程序中选择页数.
MongoDB 中结果:
打开 Robo 3T, 执行 db.getCollection('t_maoyan_movie').find({})
可以看到电影信息啦
执行 db.getCollection('t_maoyan_movie').find({}).count()
可以看到依然有 90 条数据.
来源: https://www.cnblogs.com/bertwu/p/13217711.html