scrapy框架之scrapy介绍和安装

Scrapy

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

什么是框架?

就是一个具有很强通用性且集成了很多功能的项目模板(可以被应用在各种需求中)

  • scrapy集成好的功能:
  1. 高性能的数据解析操作(xpath)
  2. 高性能的数据下载
  3. 高性能的持久化存储
  4. 中间件
  5. 全栈数据爬取操作
  6. 分布式:redis
  7. 请求传参的机制(深度爬取)
  8. scrapy中合理的应用selenium
    在这里插入图片描述

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)

爬虫的五个步骤:

  1. 需求
  2. 找到需要的URL
  3. 下载url对应的信息(Downloader)
  4. 解析这些信息, 获取特定的信息(spiders)
  5. 存储这些信息(ItemPipeline)

特殊的是, schedule.

scrapy的安装步骤:

这里举例python3.6 64位安装步骤:

pip install wheel
pip install C:\Users\Administrator\Desktop\爬虫\安装Scrapy需要文件\Twisted-18.9.0-cp36-cp36m-win_amd64.whl
pip install pywin32
pip install scrapy

说明:

1.pip install wheel

.whl文件:轮子。source是源代码,如果包含C++的话需要编译;而wheel 是编译后的二进制发布格式,可以直接使用pip安装.whl文件。pip 默认的也是先下载wheel文件安装,没有的话再源码编译安装。
whl格式本质上是一个压缩包,里面包含了py文件,以及经过编译的pyd文件。使得可以在不具备编译环境的情况下,选择合适自己的python环境进行安装。
而安装whl文件之前,需要先安装whell包。

2.下载twisted 链接

下载twisted why?
这是因为 Scrapy 需要依赖、大量第三方包。典型的,Scrapy 需要依赖如下第三方包:

  • pyOpenSSL:Python 用于支持 SSL(Security Socket Layer)的包。
  • cryptography:Python 用于加密的库。 CFFI:Python 用于调用 C 的接口库。
  • ope.interface:为 Python 缺少接口而提供扩展的库。 lxml:一个处理 XML、HTML 文档的库,比 Python 内置的 xml 模块更好用。
  • cssselect:Python 用于处理 CSS 选择器的扩展包。 Twisted:为 Python 提供的基于事件驱动的网络引擎包。

如果在 Python 环境下没有这些第三方包,那么 Python 会根据依赖自动下载并安装它们。
但 pip 在自动下载、安装 Twisted 时会提示以下错误:

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++ Build Tools 工具,然后才能安装 Twisted。为了安装一个小小的 Twisted 包,难道就需要安装一个庞大的 Microsoft Visual C++ Build Tools?
error:Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”:http://landinghub.visualstudio.com/visual-cpp-build-tools
答案是否定的,提示上面的错误只是因为 pip 自动下载的 Twisted 安装包有一些缺陷,因此可以先自行下载 Twisted 安装包。

Twisted文件名说明

在这里插入图片描述
cp后是python 版本,32或64按照自己电脑来。
当前 Twisted 的最新版是 18.9.0,Twisted 为 2.7、3.5、3.6、3.7 等不同版本的 Python 提供了对应的安装包。由于本教程内容主要以 Python 3.6 为主,因此应该下载 Twisted 的 Python 3.6 版本,其中文件名带 win32 的是 32 位版本,而带 win_amd64 的则是 64 位版本,此处还需要根据操作系统的位数选择对应的版本。
在下载了合适的 Twisted 安装包后,会得到一个 Twisted-18.9.0-cp36-cp36m-win_amd64.whl文件(针对 64 位系统的),该文件就是 Twisted 安装包。

3. 安装Twisted:

进入下载目录,cd到下载目录执行 (对应版本)

pip install Twisted-18.9.0-cp36-cp36m-win_amd64.whl

pip install 路径+Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl

在安装过程中会自动检查,如有必要,会自动下载并安装 Twisted 所依赖的第三方包,如 zope.interface、Automat、incremental 等。
在安装完成后,会提示如下安装成功的信息:在成功安装 Twisted 包之后,再次执行 pip install scrapy 命令,即可成功安装 Scrapy。在安装成功后,会显示如下提示信息:

Successfully installed Twisted-18.9.0

4. pip install pywin32:

pywin32的主要作用
1.捕获窗口;2.模拟鼠标键盘动作;3.自动获取某路径下文件列表;4.PIL截屏功能
在Windows平台上,从原来使用C/C++编写原生EXE程序,到使用Python编写一些常用脚本程序,成熟的模块的使用使得编程效率大大提高了。
不过,python模块虽多,也不可能满足开发者的所有需求。而且,模块为了便于使用,通常都封装过度,有些功能无法灵活使用,必须直接调用Windows API来实现。
要完成这一目标,有两种办法,一种是使用C编写Python扩展模块,或者就是编写普通的DLL通过python的ctypes来调用,但是这样就部分牺牲掉了Python的快速开发、免编译特性。
还好,有一个模块pywin32可以解决这个问题,它直接包装了几乎所有的Windows API,可以方便地从Python直接调用,该模块另一大主要功能是通过Python进行COM编程。

5. pip install scrapy

在成功安装 Twisted 包之后,再次执行 pip install scrapy 命令,即可成功安装 Scrapy。在安装成功后,会显示如下提示信息:

Successfully installed Scrapy-1.6.1

在成功安装 Scrapy 之后,可以通过 pydoc 来查看 Scrapy 的文档。在命令行窗口中输入如下命令:

python -m pydoc -p 8899

运行上面命令之后,打开浏览器查看 http://localhost:8899/ 页面,可以在 Python 安装目录的lib\site-packages

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值