Python爬虫框架Scrapy的安装和入门使用

    Scrapy是用Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。用户只需要手动配置开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。Scrapy 使用了 Twisted异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。在开发过程中使用它可以大大加快开发速度,因此我们有必要了解及掌握它。

一. Scrapy的安装

    首先,Scrapy的安装有多种方式,它支持Python2.7版本及以上或Python3.3版本及以上(下面主要以Python3环境进行安装过程说明)。Scrapy依赖的库比较多,至少需要依赖库有Twisted 14.0,lxml 3.4,pyOpenSSL 0.14。而在不同平台环境又各不相同,所以在安装之前最好确保把一些基本库安装好,尤其是Windows。下面主要介绍一下Windows平台下的安装过程:

    1.  当Windows系统中安装了Anaconda时

     这时安装Scrapy及其方便,因为Anaconda作为Python的集成开发环境,其中已经包含了大量的Python中常用的库,我们可以已通过conda命令轻松安装它.。如果你怕麻烦,可以先到Anaconda官网:https://www.continuum.io/downloads,下载对应版本并将其安装进电脑中,再进入命令行界面输入如下图所示的命令进行安装:

  

     安装完成后,我们要进行验证,验证方式为:重启命令行界面,输入Scrapy并提交命令,若出现如下图提示,则表示安装成功:

    2. 当Windows系统中没有安装Anaconda时:

      由于没有了Anacond的便利,我们需要手动将Scrapy的依赖库装进电脑中,这就需要用到pip命令了。

      ①. 下载Twisted,其链接为:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

      进入连接后,为了快速找到目标库文件,我们可以通过Ctrl+F搜索twisted,成功定位后下载相应版本(!注意!:cp后面的数字表示适用于Python的版本号,如cp27表示适用于Python2.7版本,本文所用版本为Python3.6,因此我下载的cp3.6)

 

      ②. 安装Twised,如上文所说,要通过pip命令进行安装。

      我们下载到对应版本的Twisted后,打开电脑命令行界面,输入命令: pip install Twisted-18.7.0-cp36-cp36m-win32.whl

(!注意!:install后面跟的是你所下载的Twised文件的完整文件名,输入时要认真对比不要写错,害怕输入错误的可以通过将文件拖拽进命令行界面的方式进行安装)

       ③. 安装Scrapy ,直接在命令行界面输入命令:pip install Scrapy进行安装即可

       ④. 验证安装, 验证方式参考上文——系统拥有Anaconda时安装Scrapy的验证方式

二. Scrapy的基本用法

     首先,在我们进行第一步——Scrapy的安装时,无论通过什么方式安装,都要进行验证,在验证时输入Scrapy命令后,会得到系统给出的类似于文档的提示,其中包括了Scrapy的可执行命令,即Available commands,具体如下图所示:

    接下来我们通过建立一个简单的项目应用来了解这些命令的使用:

    ①. 在编译器PyCharm中新建一个文件夹“Scrapy测试”,然后在终端中输入: cd (注意cd后有一个空格),接着讲新建的文件夹拖入命令行,系统会自动补全该文件夹的完整路径,按下回车后就能进入该文件夹。

    ②. 在终端输入指令:scrapy startproject wxz 进行项目创建。scrapy startproject是创建项目的命令,后面跟的是项目名称。该指令执行后的结果如下图所示:

如图所示:Scrapy测试文件夹中,被创建几个文件夹和py文件,这就表示一个项目初步创建成功。

    ③. 通过cd命令进入wxz文件夹,命令为cd wxz

    ④. 再次输入cd命令,进入外层wxz文件夹中的wxz文件夹,为了快捷和减少出错,可以通过按“↑”键执行命令

    ⑤. 输入cd spiders , 进入spiders文件夹内

    ⑥. 在终端中输入scrapy genspider taobaoSpider baidu.com,这个命令是指定要爬取的网站的域名,命令格式为:scrapy genspider taobaoSpider + 目标网站的域名。执行效果如图所示:

至此,一个初步得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项目,在自动创建的文件夹中,有着如图所示的几个文件:

 

它们的作用分别是:

items.py:定义爬虫程序的数据模型

middlewares.py:定义数据模型中的中间件

pipelines.py:管道文件,负责对爬虫返回数据的处理

settings.py:爬虫程序设置,主要是一些优先级设置,优先级越高,值越小

scrapy.cfg:内容为scrapy的基础配置

值得注意的是,在学习阶段,我们要明白几点设置文件setting中的几处配置代码,它们影响着我们的爬虫的效率:

ROBOTSTXT_OBEY = True

这行代码意思是:是否遵守爬虫协议,学习阶段我们要改为False

SPIDER_MIDDLEWARES = {
   'wxz.middlewares.WxzSpiderMiddleware': 800,
}

这里的数值越低,速度越快

四. 开始爬虫应用

    在终端中输入:scrapy genspider 文件名  + 目标网站域名,比如本文所用的就是:scrapy genspider taobao_spider taobao.com

       创建成功后,使用scrapy crawl taobao_spider命令,即可得到目标网站的源码:

以上便是Scrapy的安装和简单配置了,更多学习请关注我的博客更新。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值