【爬虫】Scrapy框架的介绍

一、框架介绍

【爬虫】Scrapy框架的介绍_第1张图片

1、各组件介绍

Scrapy Engine(核心): 负责数据流在各个组件之间的流。
Spiders(爬虫): 分析和提取数据及获取新的request请求,将得到的item交给Item Pipeline,将新的request请求再交给Scrapy Engine。
Scheduler(调度器) : 用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回。
Downloader(下载器): 负责下载Scrapy Engine交给的所有requests请求,并将获得的response(网页内容)交还给Scrapy Engine。
Item Pipeline: 对Spiders获取的数据进行后期处理(清晰、验证和存储数据),是封装去重类、存储类的地方。
中间件:
Downloaders Mddlewares:处理Scrapy引擎与下载器之间的请求及响应。封装代理、请求头等请求策略。
Spider Middlewares: 自定义扩展引擎的Spiders与Scrapy Engine之间通信的组件,处理spider的响应输入和请求输出。

2、数据流过程(根据上图)

1、Spiders(爬虫)发出requests请求,交给Scrapy Engine。
2、Scrapy Engine将request交给Scheduler(调度器)进行调度排队。
3、Scheduler(调度器)处理完之后再将交给Scrapy Engine。
4、Scrapy Engine将获得的调度完毕的request请求交给Downloader(下载器)去得到response响应。
5、Downloader(下载器)根据request请求得到Responses响应再交还给Scrapy Engine
6、Scrapy Engine传递response给Spiders进行分析。
7、Spiders根据分析和提取Items及获取新的request请求,并将item/新的request交给Scrapy Engine
8、Scrapy Engine将Spiders给的item交给Item Pipeline进行下后期处理(去重或存储等),将新的request请求交给Scheduler(调度器)

二、使用

1、步骤:
  • 新建项目: scrapy startproject +spider_name
  • 明确数据目标: 定义好item
  • 定义配置: 根据项目进行settings.py的编写
  • 数据分析提取: 新建(scrapy genspider+spider_name+allowed_domain)并编写爬虫(有需要时编写中间件对exception、response、request等进行处理)
  • 数据后期处理: 编写item pipeline(对进行去重、存储等)
2、添加request请求header中的user-agent:
  • 法一:编写settings.py中的USER_AGENT
    在这里插入图片描述
  • 法二:编写settings.py中的DEFAULT_REQUEST_HEADERS
    在这里插入图片描述
  • 法三:在spider中编写
    在这里插入图片描述
  • 法四:在middleware.py中的DownloaderMiddleware类中的方法process_request编写(也可自己定义类和方法,并settings.py启用)
    【爬虫】Scrapy框架的介绍_第2张图片
3、添加IP代理:

【爬虫】Scrapy框架的介绍_第3张图片

三、一些命令

  • 新建项目: scrapy startproject +spider_name
  • 新建spider: scrapy genspider+spider_name+allowed_domain
  • 将获取的item转为json文件: spider_name -o file_name.json
  • 将获取的item转为csv文件: spider_name -o file_name.csv

你可能感兴趣的:(爬虫)