网络爬虫一课一得

认识网路爬虫框架Scrapy及安装

认识Scrapy

随着网络爬虫的应用越来越多,互联网中涌现了一些网络爬虫框架,这些框架将网络爬虫
的一些常用功能和业务逻辑进行了封装。在这些框架的基础上,我们只需要按照需求添加
少量代码,就可以实现一个网络爬虫。 Scrapy 是目前比较流行的 Python 网络爬虫框架之一,可以帮助开发人员高效地开发网络爬虫程序

Scrapy框架简介

1 :Scrapy 是一个纯使用Python 语言开发、开源的
网络爬虫框架,用于抓取网站页面,并从页面中提
取结构化数据。Scrapy 最初是为了页面抓取而设
计的,可以简单、快速地从网站页面中提取所需的
数据,如今Scrapy 具备更加广泛的用途,可以被
应用到诸如数据挖掘、数据监测、自动化测试等领
域以及通用网络爬虫中。
2:Scrapy 是基于Twisted 框架开发的,Twisted 是
个流行的基于事件驱动的网络引擎框架,采用了
异步代码实现并发功能。Twisted 负责处理网络
通信,这样不仅加快页面的下载速度,而且减少手
动实现异步操作
3:Scrapy框架的功能如此强大,离不开其自身具备的如下优点

  1. 具有丰富的文档、良好的社区以及庞大的用户群体

  2. Scrapy支持并发功能,可以灵活地调整并发线程的数量

  3. 采用可读性很强的XPath 技术解析网页,解析速度更加快速

  4. 具有统一的中间件,可以对数据进行过滤 支持Shell工具,方便开发人员独立调试程序

  5. 通过管道将数据存入数据库,灵活方便,且可以保存为多种行式

  6. 具有高度的可定制化功能,经过简单的改造后便可以实现具有特定功 能的网络爬虫。

优缺点:

虽然Scrapy框架功能强大,但自身仍存在几个缺点 自身无法实现分布式爬虫 去重效果差,极易消耗内存 无法获取采用JavaScript
技术进行动态染的页面内容 为了弥补Scrapy框架的这些缺点产生了许多框架插件进行解决 比如,Scrapy-Redis 库解决了
Scrapy 框架不支持分布式爬虫的 问题,Scrapy-Splash 库解决了 Scrapy 框架不支持JavaScript
动态渲染的问题等


框架架构


这些组件相互协作,共同完成整个采集数Scrapy框架的强大功能离不开众多组件的支撑,跟据的任务。 Scrapy 框架的架构图如下图所示:
在这里插入图片描述
Scrapy框架中包含的组件如图为:
在这里插入图片描述

Scrapy框架中包含的组件
(1) Scrapy Engine (引擎) : 负责 Scheduler、
Spiders 、ltem Pipeline 、
Downloader
这几个组件之间的通信,包括信号和数据的传递等
(2) Scheduler (调度器): 负责接收 Scrapy Engine 发送过来的 Requests (请求),并按
照一定的方式进行整理排列和入队,在Scrapy Engine需要时再次将请求交还给Scrapy
Engine
(3) Downloader:负责下载由 Scrapy Engine 发送的所有 Requests,并将其获取到的
Responses (响应)交还给 Scrapy Engine,由 Scrapy Engine 交给 Spiders 进行处理。
(4)Spiders:负责处理所有 Responses,从 Responses 中解析并提取ltems 封装的数据
并将需要跟进的 URL提交给 Scrapy Engine,再次进入Scheduler。
(5) ltem Pipeline:负责处理 Spiders 中获取的 ltems 封装的数据,并对这些数据进行后期
处理,如详细分析、过滤、存储等。
(6) Downloader Middlewares: 位于 Downloader和Scrapy Engine 之间,可以自定义扩
展下载功能的组件。
(7) Spider Middlewares: 位于 Spiders和Scrapy Engine 之间,可以自定义扩展 Scrapy
Engine和Spiders 中间通信的功能组件

Scrapy框架运作流程

在这里插入图片描述

操作步骤

在这里插入图片描述

Scrapy的安装!!!

Scrapy是一个第三方框架,如果要使用该框架开发 网络爬虫程序,需要先在计算机中安装该框架。以 Windows
7操作系统为例,分别对安装Scrapy 和 常见安装问题进行介绍。

由于Windows 7系统默认没有安装 Python ,所以在安装 Scrapy 框架之前,需要保证
Windows7系统下已经安装了 Python。在命令提示符窗口中使用 pip 工具安装Scrapy 框架
pip install scrapy==2.5.0

常见安装问题 在Windows7系统下安装Scrapy 框架常见的两个问题是缺少 Microsoft Visual C++ 14.0 组件和Twisted 安装出错 缺少Microsoft Visual C++ 14.0 组 在
错误提示

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools".
http://landinghub.visualstudio.com/visual-cpp-build-tools

缺少Microsoft Visual C++ 14.0 组 当前电脑上缺少Microsoft Visual C+

  • 14.0 组件,则可以单独安装该组件 在浏览器中进入下载Microsoft Visua C++ 14.0组件的页面。完成下载后可以 看到下载的安装包。双击安装包进行安装 在安装过程中全部保持默认设置即可 无须进行任何修改。 需要注意的是,我们在 Visual Studio
    2015组件安装完成之后需要重启计算机
    在这里插入图片描述
    @Twisted 安装出
    由错 Scrapy框架使用了异步网络框架 Twisted,所以在安装Scrapy 的过程中需要安装
    Twisted 。若没有安装Teisted,则出现以下信息
fatal error C1083: Cannot open include file: 'basetsd.h': No such file or directory
error: command 'C: Program Files (x86)Microsoft Visual Studio 14.0VCUBIN\x86 amd64
cl.exe' failed with exit status 2

若未要装 Twisted,则可以单独安装。在浏览 器中访问 Twisted 的下载页面 在Twisted下载页面中选择适合自己电脑的安
装包进行安装。

pip install Twisted 20.3.0 cp36 cp36m win32.whl

具体详情点击这里

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值