美文网首页
学习Scrapy入门

学习Scrapy入门

作者: Julianlee107 | 来源:发表于2017-07-07 16:34 被阅读0次

Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。

如何下载scrapy

可以通过pip,conda或者github以及官网上下载。

pip install scrapy

或者

conda install scrapy

推荐使用国内的镜像源下载,否则会极其慢,而且经常会超时(说多了都是泪、、、)

如何新建一个scrapy项目

在Pycharm新建中有很多项目可以选择,例如flask,Django等,就是没有scrapy。所以scrapy的创建需要我们手动才可以。
我们可以通过命令行进入到需要建立项目的路径下,然后通过
scrapy startproject 项目名
即可创建一个scrapy项目。

文件目录 (图片来自scrapy官方文档)

上图即为一个基本scrapy项目的构成。

Scrapy的架构

图片来源:Scrapy tutorial
  1. Scrapy Engine
    引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。 详细内容查看下面的数据流(Data Flow)部分。
  2. 调度器(Scheduler)
    调度器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎。
  3. 下载器(Downloader)
    下载器负责获取页面数据并提供给引擎,而后提供给spider。
  4. Spiders
    Spider是Scrapy用户编写用于分析response并提取item(即获取到的item)或额外跟进的URL的类。 每个spider负责处理一个特定(或一些)网站。
  5. Item Pipeline
    Item Pipeline负责处理被spider提取出来的item。典型的处理有清理、 验证及持久化(例如存取到数据库中)。
  6. 下载器中间件(Downloader middlewares)
    下载器中间件是在引擎及下载器之间的特定钩子(specific hook),处理Downloader传递给引擎的response。 其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能。
  7. Spider中间件(Spider middlewares)
    Spider中间件是在引擎及Spider之间的特定钩子(specific hook),处理spider的输入(response)和输出(items及requests)。 其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能

一个最基本的爬虫会按照着途中绿色线的顺讯执行。其中的中间件更利于个人对爬虫的自定义和扩展,pipeline则是定义scrapy如何对爬取下来的数据进行处理。具体的流程如下:

  1. 引擎打开一个网站,找到处理该网站的Spider并向该Spider请求第一个要爬取的URL。
  2. 引擎从Spider中获取需要处理的URL并在schedule中进行Request调度
  3. 引擎向schedule请求一个需要进行Request处理的URL
  4. schedule通过下载器中间件将URL发送至下载器对需要爬去的URL进行下载
  5. 一旦URL的内容下载完成,会通过下载器中间件返回一个response到引擎中
  6. 引擎将收到的response返回到Spider中进行处理
  7. Spider处理完response后会返回一个item数据字典和新的request给引擎。
  8. 引擎接受到返回的item发送到pipeline中进行数据的处理(插入到数据库、处理成CSV或json文件、将多媒体文件保存到本地)
  9. 重复第二步直到没有可以处理的request

相关文章

  • scrapy小记

    scrapy入门学习地图 scrapy 框架:http://doc.scrapy.org/en/latest/to...

  • 28.scrapy的入门使用

    scrapy的入门使用 学习目标: 掌握 scrapy的安装 应用 创建scrapy的项目 应用 创建scrapy...

  • scrapy 学习日记

    文章出处:【scrapy】学习Scrapy入门 整体结构 引擎(Scrapy Engine),用来处理整个系统的数...

  • Scrapy爬取猫眼电影并存入MongoDB数据库

    之前入门了Scrapy,用Scrapy框架爬取了豆瓣电影TOP250,最近打算学习下scrapy-redis分布式...

  • 【scrapy】学习Scrapy入门

    Scrapy介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信...

  • scrapy笔记

    1 scrapy的运行原理 参考:Learning Scrapy笔记(三)- Scrapy基础Scrapy爬虫入门...

  • Scrapy入门案例

    Scrapy入门案例 Scrapy教程: 官方 《Scrapy 1.5 documentation》 中文 《S...

  • Scrapy入门学习

    简介 采用异步框架。scrapy中文文档:https://scrapy-chs.readthedocs.io/zh...

  • 学习Scrapy入门

    Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化...

  • Scrapy学习(一)-爬取天气信息

    开始学习下scrapy这个爬虫框架,安装过程可以随便google,这里不再赘述 scrapy文档 这里面有个入门教...

网友评论

      本文标题:学习Scrapy入门

      本文链接:https://www.haomeiwen.com/subject/ugelhxtx.html