Scrapy库的安装与使用

Posted on 2019-06-17 21:56  wangziyan  阅读(2599)  评论(1编辑  收藏  举报

 

安装部分

命令行执行:

安装:  pip install scrapy

安装后小测:  执行scrapy -h

 

Scrapy爬虫框架结构:

爬虫框架:爬虫框架是实现爬虫功能的一个软件结构和功能组件的集合。

 

Scrapy:5+2结构  

5个模块

Spiders 用户编写(配置) 解析Downloader返回的响应,产生爬取项,产生额外的爬取请求。

Item pipelines 用户编写(配置) 以流水线来处理Spider产生的爬取项,可能的操作包括:清理、检验和查重爬取项中的HTML数据、将数据存储到数据库。

Engine 已有实现       控制数据流,触发事件,不需要用户修改

Downloader 已有实现     根据请求来下载网页,不需要用户修改

Scheduler 已有实现    对所有请求进行调度,不需要用户修改

2个中间件

Downloader Middleware: 实施Engine、Scheduler和Downloader之间进行用户可配置的控制。修改、丢弃、新增请求或响应。用户可以编写配置代码,也可以不更改。

Spider Middleware:目的:对请求和爬取项的再处理。功能:修改、丢弃、新增请求或爬取项。用户可以编写配置代码。

 

Requests vs. Scrapy

相同点:

两者都可以进行页面请求和爬取,Python爬虫的两个重要技术路线。

两者可用性都好,文档丰富,入门简单。

两者都没有处理js、提交表单、应对验证码等功能(可扩展)。

不同点:

 非常小的需求,requests

不太小的请求,Scrapy

定制程度很高的需求(不考虑规模),自搭框架,requests>Scrapy。

 

Scrapy命令行

scrapy -h

Scrapy命令行格式:

scrapy <commad> [options][args]

Scrapy常用命令:

 

Scrapy爬虫的第一个实例

1. 新建项目:

生成工程目录

2. 在工程中产生一个Scrapy爬虫

 

3. 配置产生的spider爬虫

 

4. 运行爬虫,获取网页

scrapy crawl demo

 

 yield关键字

与生成器息息相关,生成器是一个不断产生值的函数。

包含yield语句的函数是一个生成器。

生成器每次产生一个值(yield语句),函数被冻结,被唤醒后再产生一个值。