scrapy框架讲解
简介:
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框架讲解相关推荐
- 零基础学Python-爬虫-2、scrapy框架(测试案例篇·技术点在后面文章内讲解)【测试将一篇小说的所有访问路径与标题存储到一个文件下】
本套课程正式进入Python爬虫阶段,具体章节根据实际发布决定,可点击[python爬虫]分类专栏进行倒序观看: [重点提示:请勿爬取有害他人或国家利益的内容,此课程虽可爬取互联网任意内容,但无任何收 ...
- 十 web爬虫讲解2—Scrapy框架爬虫—Scrapy安装—Scrapy指令
Scrapy框架安装 1.首先,终端执行命令升级pip: python -m pip install --upgrade pip 2.安装,wheel(建议网络安装) pip install whee ...
- Python爬虫基础讲解(二十三):scrapy框架简介
Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space.bilibili.com/523606542 Python学习交流群:1039649593 scrapy是一 ...
- 爬虫框架Scrapy的讲解
一.Scrapy的定义 Scrapy是适用于Python的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化 ...
- python spider 安装_Python爬虫(11):Scrapy框架的安装和基本使用
大家好,本篇文章我们来看一下强大的Python爬虫框架Scrapy.Scrapy是一个使用简单,功能强大的异步爬虫框架,我们先来看看他的安装. Scrapy的安装 Scrapy的安装是很麻烦的,对于一 ...
- python爬虫入门(六) Scrapy框架之原理介绍
Scrapy框架 Scrapy简介 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬 ...
- 第42讲:scrapy框架的基本使用
接下来介绍一个简单的项目,完成一遍 Scrapy 抓取流程.通过这个过程,我们可以对 Scrapy 的基本用法和原理有大体了解. 本节目标 本节要完成的任务如下. 创建一个 Scrapy 项目. 创建 ...
- scrapy框架_入门Scrapy框架看这一篇文章就够了
前言 Scrapy是一个非常优秀的框架,操作简单,拓展方便,是比较流行的爬虫解决方案. Scrapy是一个用Python写的Crawer Framework,简单轻巧而且非常方便.Scrapy使用Tw ...
- Python爬虫从入门到放弃(十一)之 Scrapy框架整体的一个了解
这里是通过爬取伯乐在线的全部文章为例子,让自己先对scrapy进行一个整理的理解 该例子中的详细代码会放到我的github地址:https://github.com/pythonsite/spider ...
最新文章
- python输入多个数字后续操作_有效地确定后续数字范围中的数字是否在有序列表中. (在Python中)...
- Android深度探索(卷1)HAL与驱动开发第五章总结
- 修改2k自动登陆的脚本
- python输出方格_Python蓝桥杯练习 剪格子
- 关于业务用例抽象问题对网友的回复
- uni-app 用户地理位置授权
- freemarker跳出循环
- [css] 如何使用CSS绘制一个汉堡式菜单
- jquery跨域Ajax请求
- 英伟达发布迁移学习工具包,现在可以申请早期试用
- oracle10g无监听配置文件,关于监听配置文件listener.ora的问题
- UFS Write Booster Feature Overview
- Oracle SYSAUX 表空间 说明
- uni-app字符串数字转换
- python是由哪个人创造的文字_秦朝的文字是什么样的?是由谁创造出来的?
- Redis---初识redis
- 图卷积神经网络(GCN)
- php字符串去空格函数,php去掉字符串中的空格
- Kafka教程(一)Kafka入门教程
- hexo butterfly主题 添加全局吸底APlayer