爬虫主流框架分享--Scrapy【第三期】

这是Scrapy教程的第三期,本期教程实现抓取数据的持久化存储!

存储须知

1:将数据持久化存储都在项目管道组件中实现,存储为json以及csv文件不需要(scrapy内置命令行存储)

2:scrapy特点是遇到错误程序不停止,继续执行

将爬虫文件提取的数据持久化存储为 .json 以及 .csv 文件

终端指令:

1:scrapy crawl 爬虫文件名 -o 文件名.csv

2:scrapy crawl 爬虫文件名 -o 文件名.json

注意:存储为 csv 以及 json 文件之后,每一列数据的字段就是在 items.py 中定义的字典的键值

image-20211006152223930

将爬虫文件提取的数据持久化存储到 Mysql 数据库以及项目管道中 return item 的作用!!

数据持久化存储到 Mysql

第一步:在项目管道组件文件(pipelines.py)内新建一个管道类用于将数据存储到 mysql 数据库内

image-20211006152520900

第二步:在settings.py内定义连接Mysql数据库用的主机名、用户名的变量参数等等

第三步:在项目管道文件内导入.settings模块,并在类中创建 open_spider( )方法,注意方法名不能变,用于连接数据库

image-20211006152536990

第四步:在类中创建 close_spider( ) 方法,注意方法名是固定的,用于断开数据库

image-20211006152547024

第五步:在 process_item()方法中将数据存储到 mysql 数据库内(不要忘记commit)

image-20211006152558631

第六步:在 settings.py中设置管道以及其权重

image-20211006152606394

第七步:运行爬虫文件,将数据存入!

image-20211006152612573

项目管道中process_item函数中 return item 的作用

当前管道(类)将数据处理结束后,将数据返回给其他管道接着对数据进行处理,例如先对数据打印,再将数据存到 mysql数据库内,具体谁先谁后看管道权重!!!

image-20211006152625279

settings.py 文件内设置的参数信息功能

image-20211006152448864