简介:

Scrapy是一个基于Python的开源异步爬虫框架,它被广泛用于从网页或App中,提取数据并将其保存到本地或数据库。由2.8版本以后提供了 http2.0协议的爬虫支持。

扩展:

scrapy是基于twisted框架开发而来,twisted是一个流行的事件驱动,使用了一种非阻塞(即异步)的代码实现并发,Scrapy之所以能实现异步,得益于twisted框架。

安装命令

# 安装命令
pip install scrapy
# 查看安装结果命令
scrapy --v

显示一下版本页面表示安装成功

scrapy中文官网

Scrapy一目了然 — Scrapy 2.5.0 文档

 一、Scrapy的五大核心组件

(1) 调度器(Scheduler)

用来接受引擎发过来的请求,并按照一定的方式进行整理排列,放到队列中,当引擎需要时,交还给引擎。可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址。

(2) 下载器(Downloader)

负责下载引擎发送的所有Request请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理。Scrapy下载器是建立在twisted这个高效的异步模型上的。

(3) 爬虫(Spider)

用户根据自己的需求,编写程序,用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。跟进的URL提交给引擎,再次进入Scheduler(调度器)。

(4) 管道(Pipelines)

用于接收网络爬虫传过来的数据,以便做进一步处理。例如验证实体的有效性、清除不需要的信息、存入数据库(持久化实体)、存入文本文件等。

(5) 引擎(Engine)

框架核心,用来处理整个系统的数据流的流动, 触发事务(判断是何种数据流,然后再调用相应的方法)。也就是负责爬虫、管道、下载器、调度器中间的通讯,信号、数据传递等,所以被称为框架的核心。 引擎相当于计算机的CPU,它控制着整个流程。

二、Scrapy框架的工作原理如下:

1.引擎会向spider索要url

2.引擎拿到url地址后会分发给调度器入队列,在调度器中会进行去重等处理

3.调度器会把整理好的url队列分发给下载器,进行下载数据,并把相应内容返回给spider。

下载器中间件,可以把他理解成是引擎与下载器中间的一个钩子(hook)插件,在这里我们可以修改和添加user-agent、代理ip、cookie、等等模拟浏览器环境行为来对抗各种反爬虫)还可以做异常的捕获与重试等...

4.spider拿到响应后,提取相应并生成item对象分发给管道进行持久化存储。

spider中间件,可以把他理解成是引擎与下载器中间的一个钩子(hook)插件,处理引擎传递给爬虫的响应或者处理爬虫传递给引擎的请求等。

例如,当运行到 yield scrapy.Request()或者 yield item 的时候,spider中间件会被触发。

5.pipelines管道拿到数据后可以持久化存储到数据库、表格等

三、创建scrapy框架

scrapy startproject BaiDu
cd BaiDu
scrapy genspider baidu www.baidu.com

scrapy框架讲解相关推荐

  1. 零基础学Python-爬虫-2、scrapy框架(测试案例篇·技术点在后面文章内讲解)【测试将一篇小说的所有访问路径与标题存储到一个文件下】

    本套课程正式进入Python爬虫阶段,具体章节根据实际发布决定,可点击[python爬虫]分类专栏进行倒序观看: [重点提示:请勿爬取有害他人或国家利益的内容,此课程虽可爬取互联网任意内容,但无任何收 ...

  2. 十 web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令

    Scrapy框架安装 1.首先,终端执行命令升级pip: python -m pip install --upgrade pip 2.安装,wheel(建议网络安装) pip install whee ...

  3. Python爬虫基础讲解(二十三):scrapy框架简介

    Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space.bilibili.com/523606542 Python学习交流群:1039649593 scrapy是一 ...

  4. 爬虫框架Scrapy的讲解

    一.Scrapy的定义 Scrapy是适用于Python的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化 ...

  5. python spider 安装_Python爬虫(11):Scrapy框架的安装和基本使用

    大家好,本篇文章我们来看一下强大的Python爬虫框架Scrapy.Scrapy是一个使用简单,功能强大的异步爬虫框架,我们先来看看他的安装. Scrapy的安装 Scrapy的安装是很麻烦的,对于一 ...

  6. python爬虫入门(六) Scrapy框架之原理介绍

    Scrapy框架 Scrapy简介 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬 ...

  7. 第42讲:scrapy框架的基本使用

    接下来介绍一个简单的项目,完成一遍 Scrapy 抓取流程.通过这个过程,我们可以对 Scrapy 的基本用法和原理有大体了解. 本节目标 本节要完成的任务如下. 创建一个 Scrapy 项目. 创建 ...

  8. scrapy框架_入门Scrapy框架看这一篇文章就够了

    前言 Scrapy是一个非常优秀的框架,操作简单,拓展方便,是比较流行的爬虫解决方案. Scrapy是一个用Python写的Crawer Framework,简单轻巧而且非常方便.Scrapy使用Tw ...

  9. Python爬虫从入门到放弃(十一)之 Scrapy框架整体的一个了解

    这里是通过爬取伯乐在线的全部文章为例子,让自己先对scrapy进行一个整理的理解 该例子中的详细代码会放到我的github地址:https://github.com/pythonsite/spider ...

最新文章

  1. python输入多个数字后续操作_有效地确定后续数字范围中的数字是否在有序列表中. (在Python中)...
  2. Android深度探索(卷1)HAL与驱动开发第五章总结
  3. 修改2k自动登陆的脚本
  4. python输出方格_Python蓝桥杯练习 剪格子
  5. 关于业务用例抽象问题对网友的回复
  6. uni-app 用户地理位置授权
  7. freemarker跳出循环
  8. [css] 如何使用CSS绘制一个汉堡式菜单
  9. jquery跨域Ajax请求
  10. 英伟达发布迁移学习工具包,现在可以申请早期试用
  11. oracle10g无监听配置文件,关于监听配置文件listener.ora的问题
  12. UFS Write Booster Feature Overview
  13. Oracle SYSAUX 表空间 说明
  14. uni-app字符串数字转换
  15. python是由哪个人创造的文字_秦朝的文字是什么样的?是由谁创造出来的?
  16. Redis---初识redis
  17. 图卷积神经网络(GCN)
  18. php字符串去空格函数,php去掉字符串中的空格
  19. Kafka教程(一)Kafka入门教程
  20. hexo butterfly主题 添加全局吸底APlayer

热门文章

  1. 2022第四届长安杯复盘
  2. 在ALLEGRO中添加中文字体
  3. Nacos 注册中心主要贡献者详解注册中心的设计原理
  4. Oracle开发实战学习
  5. 无法启动此程序,因为计算机中丢失vcruntime140.dll”的解决方法
  6. bootrom是什么?
  7. SDL游戏开发之一-SDL的简介
  8. Excl2016密码忘记 破解办法
  9. PHP多维数组按照键进行排序(对KEY按ASSIIC码排序)
  10. 跳台阶算法的三种实现方案(PHP)