从零入门Scarpy【1】:框架、数据流 和 实战案例

本文详细介绍了Scrapy爬虫框架,包括核心组件、运作流程、在Pycharm中创建项目,以及制作简单爬虫的步骤。通过实例讲解了设置下载中间件、定义Item和Pipeline,以及爬虫的运行过程。
摘要由CSDN通过智能技术生成

目录

一 Scrapy 框架介绍

二 Scrapy 的运作流程

三 Pycharm 中创建 Scrapy 项目

四 制作简单 Scrapy 爬虫

五 运行爬虫


Scrapy英文文档 https://docs.scrapy.org/en/latest
Scrapy1.7中文文档 https://www.osgeo.cn/scrapy/ 

一 Scrapy 框架介绍

  • Scrapy Engine:引擎。负责Scheduler 、Downloader、Spider、ItemPipeline 中间的通讯、信号、数据传递等,是整个框架的核心
  • Scheduler:调度器。负责接受Scrapy Engine发送过来的Request请求,并按照一定的方式将其加入队列中,当Scrapy Engine需要时,交还给Scrapy Engine
  • Downloader Middlewares:下载器中间件。位于Scrapy Engine和Downloader之间的钩子框架,主要处理Scrapy Engine与Downloader之间的请求及响应。主要功能包括更换代理IP,更换Cookies,更换User-Agent,自动重试等
  • Downloader:下载器。负责下载Scrapy Engine发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine,由Scrapy Engine交给Spiders来处理
  • Spiders:蜘蛛。它负责从Responses中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给Scrapy Engine,再次进入Scheduler
  • Spider Middlewares:蜘蛛中间件。位于Scrapy Engine和Spider之间的钩子框架,主要处理Spider输入的响应和输出的结果及新的请求(比如进入Spider的Responses和从Spider出去的Requests)。一般不用设置
  • Item:项目。它定义了爬取结果的数据结构,爬取的数据会被赋值成该Item对象
  • Item Pipeline:项目管道。负责处理由Spider从网页中抽取的项目,它的主要任务是清洗、验证和存储数据
  • 另,框架是个宝,多看一遍,多Scrapy的理解就多清晰一些

 

二 Scrapy 的运作流程

  1. Engine首先找到处理某网站的Spider,并向该Spider请求第一个要爬取的URL
  2. Engine从Spider中获取到第一个要爬取的URL,并通过Scheduler以Request的形式调度
  3. Engine向Scheduler请求下一个要爬取的URL
  4. Scheduler返回下一个要爬取的URL给Engine,Engine将URL通过Downloader Middlewares转发给Downloader下载
  5. 一旦页面下载完毕,Downloader生成该页面的Response,并将其通过Downloader Middlewares发送给Engine
  6. Engine从下载器中接收到Response,并将其通过Spider Middlewares发送给Spider处理
  7. Spider处理Response,并返回爬取到的Item及新的Request给Engine
  8. Engine将Spider返回的Item给Item Pipeline,将新的Request给Scheduler
  9. 重复第二步到最后一步,直到Scheduler中没有更多的Request,Engine关闭该网站,爬取结束

 

三 Pycharm 中创建 Scrapy 项目

1 创建项目

2 安装Scrapy

 

 3 创建scrapy项目

# 打开terminal 输入以下命令
# scrapy startproject 爬虫项目名
scrapy startproject crawlers

4 创建后的目录如下: 

crawlers/
 ├── crawlers/           # p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值