Scrapy 框架

  • Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。
  • 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。
  • Scrapy 使用了 Twisted['twɪstɪd](其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。

Scrapy架构图(绿线是数据流向):

Scrapy架构图(绿线是数据流向)

Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。

Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。

Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理,

Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器),

Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方.

Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件。

Spider Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)

Scrapy的运作流程

代码写好,程序开始运行...

  1. 引擎:Hi!Spider, 你要处理哪一个网站?
  2. Spider:老大要我处理xxxx.com。
  3. 引擎:你把第一个需要处理的URL给我吧。
  4. Spider:给你,第一个URL是xxxxxxx.com。
  5. 引擎:Hi!调度器,我这有request请求你帮我排序入队一下。
  6. 调度器:好的,正在处理你等一下。
  7. 引擎:Hi!调度器,把你处理好的request请求给我。
  8. 调度器:给你,这是我处理好的request
  9. 引擎:Hi!下载器,你按照老大的下载中间件的设置帮我下载一下这个request请求
  10. 下载器:好的!给你,这是下载好的东西。(如果失败:sorry,这个request下载失败了。然后引擎告诉调度器,这个request下载失败了,你记录一下,我们待会儿再下载)
  11. 引擎:Hi!Spider,这是下载好的东西,并且已经按照老大的下载中间件处理过了,你自己处理一下(注意!这儿responses默认是交给def parse()这个函数处理的)
  12. Spider:(处理完毕数据之后对于需要跟进的URL),Hi!引擎,我这里有两个结果,这个是我需要跟进的URL,还有这个是我获取到的Item数据。
  13. 引擎:Hi !管道 我这儿有个item你帮我处理一下!调度器!这是需要跟进URL你帮我处理下。然后从第四步开始循环,直到获取完老大需要全部信息。
  14. 管道``调度器:好的,现在就做!

注意!只有当调度器中不存在任何request了,整个程序才会停止,(也就是说,对于下载失败的URL,Scrapy也会重新下载。)

制作 Scrapy 爬虫 一共需要4步:

  • 新建项目 (scrapy startproject xxx):新建一个新的爬虫项目
  • 明确目标 (编写items.py):明确你想要抓取的目标
  • 制作爬虫 (spiders/xxspider.py):制作爬虫开始爬取网页
  • 存储内容 (pipelines.py):设计管道存储爬取内容

Scrapy的安装介绍

Scrapy框架官方网址:http://doc.scrapy.org/en/latest

Scrapy中文维护站点:http://scrapy-chs.readthedocs.io/zh_CN/latest/index.html

Windows 安装方式

  • Python 2 / 3
  • 升级pip版本:pip install --upgrade pip
  • 通过pip 安装 Scrapy 框架 pip install Scrapy

Ubuntu 需要9.10或以上版本安装方式

  • Python 2 / 3
  • 安装非Python的依赖 sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
  • 通过pip 安装 Scrapy 框架 sudo pip install scrapy

安装后,只要在命令终端输入 scrapy,提示类似以下结果,代表已经安装成功

在命令终端输入 scrapy

具体Scrapy安装流程参考:http://doc.scrapy.org/en/latest/intro/install.html#intro-install-platform-notes 里面有各个平台的安装方法

scrapy安装_爬虫框架Scrapy简介与安装相关推荐

  1. python scrapy教程实例_爬虫框架Scrapy的第一个爬虫示例入门教程

    原标题:爬虫框架Scrapy的第一个爬虫示例入门教程 我们使用dmoz.org这个网站来作为小抓抓一展身手的对象. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建 ...

  2. python爬虫scrapy连接mongodb_爬虫框架scrapy和数据库MongoDB的结合使用(二)实战

    目标抓取盗墓笔记小说网站上<盗墓笔记>这本书的书名.章节名.章节url,并存放到MongoDB中 1.Scrapy中settings.py的设置(先scrapy startproject ...

  3. 阅读《精通Python爬虫框架Scrapy》

    精通Python爬虫框架Scrapy 精通Python爬虫框架Scrapy 2018年2月的书,居然代码用的是Python2 环境使用的是Vagrant,但是由于国内网络的问题,安装的太慢了. 书里内 ...

  4. python爬虫scrapy安装_零基础写python爬虫之爬虫框架Scrapy安装配置

    前面十章爬虫笔记陆陆续续记录了一些简单的Python爬虫知识, 用来解决简单的贴吧下载,绩点运算自然不在话下. 不过要想批量下载大量的内容,比如知乎的所有的问答,那便显得游刃不有余了点. 于是乎,爬虫 ...

  5. pythonscrapy爬虫安装_零基础写python爬虫之爬虫框架Scrapy安装配置

    前面十章爬虫笔记陆陆续续记录了一些简单的Python爬虫知识, 用来解决简单的贴吧下载,绩点运算自然不在话下. 不过要想批量下载大量的内容,比如知乎的所有的问答,那便显得游刃不有余了点. 于是乎,爬虫 ...

  6. Python爬虫框架Scrapy安装使用步骤

    一.爬虫框架Scarpy简介 Scrapy 是一个快速的高层次的屏幕抓取和网页爬虫框架,爬取网站,从网站页面得到结构化的数据,它有着广泛的用途,从数据挖掘到监测和自动测试,Scrapy完全用Pytho ...

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

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

  8. 网络爬虫框架Scrapy简介

    作者: 黄进(QQ:7149101) 一. 网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本:它是一个自动提取网页的程序,它为搜索引擎从万维 ...

  9. Python网络爬虫框架 Scrapy简介

    Scrapy 网络爬虫框架 Scrapy的安装 cmd 执行: pip install scrapy测试安装: scrapy -h Scrapy介绍 Scrapy不是一个函数功能库,而是一个爬虫框架. ...

最新文章

  1. 转载: Vim 练级攻略
  2. 解决高版本SpringBoot整合swagger时启动报错:Failed to start bean ‘documentationPluginsBootstrapper‘ 问题
  3. 利用自定义的 ClassLoader 加密 Java Class 文件
  4. android 保存图片出现2张_OriCell第三届细胞培养图片大赛来啦~ - 实验动物
  5. MySQL表中插入中文数据时出错
  6. python3.7.2怎么用不了pillow_python怎么加载Pillow包
  7. 软件测试中的测试报告
  8. 一个关于创业不错的博客
  9. 来阿里三年,他从宠妻狂魔到正义战士
  10. Building 'xxx' Gradle project info
  11. 【DFS】巧妙取量的倒油问题
  12. 【Idea】Refactor
  13. 论文笔记:Universal Adversarial Triggers for Attacking and Analyzing NLP
  14. uniapp开发微信小程序弹窗自用封装
  15. Web打印--Lodop使用手册install_lodop.exe
  16. Python之父吉多·范罗苏姆谈中国的996工作制度
  17. 锂云母提锂浸取液除铝
  18. 2021 新标准大学英语综合教程3 第二版 答案 Unit1
  19. php ado excel,求助::用ADO的方法修改EXCEL中单元格中的数据
  20. (2019)通过机器学习从建筑物中的Wi-Fi数据推断居住人数

热门文章

  1. html5标签属性大全_HTML5中video标签如何使用
  2. docker启动odoo提示module没有安装_Ubuntu20.04通过docker安装微信
  3. ubuntu+eclipse+svn
  4. 产品经验谈:设计思维 统计思维
  5. linux ftp解压命令 cannot fid or open,Linux环境搭建及常用shell命令集锦
  6. 【APICloud系列|9】APICloud自定义APPloader一个月未更新,快速更新的办法
  7. 无忧企业系统的getshell
  8. mysql binlog空间维护
  9. Elasticsearch 深入3
  10. C#中的CultureInfo类