scrapy 框架

scrapy框架的流程图

1、scrapy框架主要为个块

(1)Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
       (2)Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。
       (3)Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理
       (4)Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)
       (5)Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方.
       (6)Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件。
       (7)Spider Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)

2、制作 Scrapy 爬虫 一共需要4步

1、新建项目: scrapy startproject 爬虫项目名称
2、新建一个新的爬虫明确目标:(编写items.py):明确你想要抓取的目标
3、制作爬虫scrapy genspider 爬虫文件名称 域名:制作爬虫开始爬取网页
4、存储内容pipelines.py):设计管道存储爬取内容

3、scrapy 框架配置和安装

1、Ubuntu 安装方式:sudo pip3 install scrapy

4、scrapy框架的使用

1、创建爬虫项目:scrapy startproject 项目名

2、新建爬虫文件:scrapy genspider 爬虫的名字 域名

3、明确我们的目标,就是我们所要抓取的url

4、打开项目文件下的item.py文件,在这里我们要写入我们所需要获取的数据字段

5、打开settings.py文件我们需要在这里配置爬虫需要的信息

6、打开爬虫文件,在这里我们从item里获取需要解析的字段进行解析以及提取所需要的url用yield回调。注意:yield 的作用就是把一个函数变成一个 generator(生成器),带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator,带有yeild的函数遇到yeild的时候就返回一个迭代值,下次迭代时, 代码从 yield 的下一条语句继续执行,而函数的本地变量看起来和上次中断执行前是完全一样的,于是函数继续执行, 直到再次遇到 yield。

这里的name是指爬虫的名字
allowed_domains指的是允许爬虫访问的域
atart_urls指的是我们的初始目标url

6、Scrapy Item pipeline(管道文件)使用

1、Item Pipeline 当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item。每个Item Pipeline都是实现了简单方法的Python类,比如决定此Item是丢弃而存储。
在这里我们把管道作为储存和过滤

例如:

在这里我们把数据保存至mongodb数据库中,在设置好ip和数据库的端口之后,
指定它要存入的数据库和集合,如果没有那个数据库和集合,代码会帮我们自动创建

7、下载项目图片(下载到本地)

1、可以现在seetings.py文件里面定义一个本地图片的保存路径,例如:IMAGES_STORE = '/home/ljh/桌面/1804爬虫/jobboleImage'

2、在items里面定义好项目图片的url,以及本地存储路径的字段

3、在爬虫文件里面对图片地址进行解析

4、解析好的url返回给管道,进行响应以及对图片的下载,具体操作如下

你可能感兴趣的:(scrapy 框架)