Scrapy 学习

一、概述

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

其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 后台也应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫.

Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持.

二、Scrapy五大基本构成:

Scrapy框架主要由五大组件组成,它们分别是调度器(Scheduler)、下载器(Downloader)、爬虫(Spider)和实体管道(Item Pipeline)、Scrapy引擎(Scrapy Engine)。下面我们分别介绍各个组件的作用。

(1)、调度器(Scheduler):

调度器,说白了把它假设成为一个URL(抓取网页的网址或者说是链接)的优先队列,由它来决定下一个要抓取的网址是 什么,同时去除重复的网址(不做无用功)。用户可以自己的需求定制调度器。

(2)、下载器(Downloader):

下载器,是所有组件中负担最大的,它用于高速地下载网络上的资源。Scrapy的下载器代码不会太复杂,但效率高,主要的原因是Scrapy下载器是建立在twisted这个高效的异步模型上的(其实整个框架都在建立在这个模型上的)。

(3)、 爬虫(Spider):

爬虫,是用户最关心的部份。用户定制自己的爬虫(通过定制正则表达式等语法),用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。 用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。

(4)、 实体管道(Item Pipeline):

实体管道,用于处理爬虫(spider)提取的实体。主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。

(5)、Scrapy引擎(Scrapy Engine):

Scrapy引擎是整个框架的核心.它用来控制调试器、下载器、爬虫。实际上,引擎相当于计算机的CPU,它控制着整个流程。

三、整体架构图

本图按顺序说明整个程序执行时候发生的顺序。

注意在调用下载器时,往往有一个下载器中间件,使下载速度提速。
在这里插入图片描述
官网架构图
在这里插入图片描述

Scrapy运行流程大概如下:
  1. 引擎从调度器中取出一个链接(URL)用于接下来的抓取
  2. 引擎把URL封装成一个请求(Request)传给下载器
  3. 下载器把资源下载下来,并封装成应答包(Response)
  4. 爬虫解析Response
  5. 解析出实体(Item),则交给实体管道进行进一步的处理
  6. 解析出的是链接(URL),则把URL交给调度器等待抓取

四、Scrapy安装

widows ,打开一个cmd,输入pip install scrapy,前提是你装了pip。

五、Scrapy常用命令

全局命令

1-startproject
创建一个新的Scrapy项目:

scrapy startproject <project_name> [project_dir]
例如:scrapy startproject Crawler51job

【注意】项目名称不能以数字开头
2-genspider
在当前文件夹或者当前项目,创建一个新的爬虫文件

scrapy genspider [-t template] <name> <domain>
例如:scrapy genspider -t basic spider51job 51job.com

其他template参数见帮助文档
3-runspider
运行一个爬虫文件

scrapy runspider <spider_file.py>
例如:scrapy runspider test51job.py

4-fetch
获取指定的URL,并且能够显示出获取的过程

scrapy fetch <url>
例如:scrapy fetch https://www.baidu.com

5-view
在浏览器中打开指定的URL

scrapy view <url>
scrapy view https://www.baidu.com

6-version
打印出Scrapy版本号

scrapy version [-v]
scrapy version -v
项目命令

1-crawl
运行爬虫项目

scrapy crawl <spider>
例如:scrapy crawl spider51job [--nolog]

2-bench
测试本地硬件性能

scrapy bench

3-list
列出当前项目下的所有爬虫文件

scrapy list
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值