1.scrapy的安装

pip install scrapy

2.scrapy项目的创建

1.首先找到要建立项目的位置

scrapy爬虫python版本 scrapy爬虫教程_ide


在路径前面加上cmd然后回车

scrapy爬虫python版本 scrapy爬虫教程_传递数据_02

2.输入建立scrapy项目的命令

scrapy startproject + 你要起的项目名称
例如:scrapy startproject study

scrapy爬虫python版本 scrapy爬虫教程_传递数据_03


出现这个就说明创建成功了,打开pycharm就可以查看项目的结构

scrapy爬虫python版本 scrapy爬虫教程_数据_04

3.建立爬虫项目

1.在cmd命令中输入cd 加刚才的项目名

scrapy爬虫python版本 scrapy爬虫教程_传递数据_05

2.输入创建爬虫文件的命令

scrapy genspider 爬虫名称  爬取范围,要爬网站的起始url
例如: scrapy genspider baidu www.baidu.com

scrapy爬虫python版本 scrapy爬虫教程_传递数据_06

3.配置爬虫文件

scrapy爬虫python版本 scrapy爬虫教程_ide_07


这是建立爬虫文件自带的,起始的url也会自己填进去, 也可以自己进行更改,接下来我们就可以在parse函数里面进行爬虫代码的编写了

4.运行爬虫代码

1.写好爬虫代码

scrapy爬虫python版本 scrapy爬虫教程_传递数据_08


我们以彼岸图网为例

2.打开命令窗口输入如下指令

scrapy crawl 爬虫名称
例如:scrapy crawl baidu

scrapy爬虫python版本 scrapy爬虫教程_scrapy爬虫python版本_09

可以看到日志文件非常的多,怎样关闭日志呢。

3.关闭日志

进入项目文件打开seetings文件

scrapy爬虫python版本 scrapy爬虫教程_传递数据_10


在里面加入如下代码

scrapy爬虫python版本 scrapy爬虫教程_传递数据_11


这样只有级别为WARNING的错误才会出现,看看效果

scrapy爬虫python版本 scrapy爬虫教程_数据_12


但是这样的数据还是非常的杂乱,每句都有Selector。

4.消除Selector

scrapy爬虫python版本 scrapy爬虫教程_数据_13


在我们的语句后面加上.extract()就可以了,看下效果

scrapy爬虫python版本 scrapy爬虫教程_scrapy爬虫python版本_14

5.在pipelines输出爬虫数据

1.传递数据到pipelines

使用yield将数据从爬虫文件传入pipelines

scrapy爬虫python版本 scrapy爬虫教程_ide_15

然后再pipelines将数据输出一下

scrapy爬虫python版本 scrapy爬虫教程_ide_16


scrapy爬虫python版本 scrapy爬虫教程_传递数据_17

scrapy爬虫python版本 scrapy爬虫教程_传递数据_18

结果运行爬虫的时候报错了, 他说只能传递request对象,字典,或者空,而我们传递的是一个列表

2.修改传递数据

scrapy爬虫python版本 scrapy爬虫教程_传递数据_19

我们把数据变为字典结构再来一次

scrapy爬虫python版本 scrapy爬虫教程_传递数据_20


结果为空直接跳过了,这里发现我们没有开启pipelines

3.在seetings中找到ITEM_PIPELINES去掉他的注释即可

scrapy爬虫python版本 scrapy爬虫教程_数据_21


后面的值越小,执行越优先,现在我们执行运行爬虫命令

scrapy爬虫python版本 scrapy爬虫教程_传递数据_22


已经可以输出了。

4.解释一下后面的数字

scrapy爬虫python版本 scrapy爬虫教程_数据_23


我们在pipelines中再复制一个类, 然后进入settings中,加入新建的类

scrapy爬虫python版本 scrapy爬虫教程_ide_24

如果我们输出的结果中出现了wo与ni的那一行字典,说明其先经过了299这个类中

scrapy爬虫python版本 scrapy爬虫教程_ide_25