【爬虫】Scrapy框架的介绍

一、框架介绍

scrapy

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启用)
    在这里插入图片描述
3、添加IP代理:

在这里插入图片描述

三、一些命令

  • 新建项目: 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
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值