安装部分数据库
命令行执行:框架
安装: pip install scrapyscrapy
安装后小测: 执行scrapy -hide
Scrapy爬虫框架结构:函数
爬虫框架:爬虫框架是实现爬虫功能的一个软件结构和功能组件的集合。命令行
Scrapy:5+2结构 3d
5个模块中间件
Spiders 用户编写(配置) 解析Downloader返回的响应,产生爬取项,产生额外的爬取请求。blog
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语句),函数被冻结,被唤醒后再产生一个值。