python爬虫 互动版

scrapy详解

前一节介绍了scrapy框架的原理,本节将结合实际项目w3c来讲解如何使用scrapy。

使用scrapy前需要安装scrapy包,在windows中安装时一般会由于Windows底层库问题导致安装比较繁琐,所以建议在linux或mac os中安装。使用pip安装scrapy的命令是pip install scrapy。安装完成后就可以使用scrapy框架了。

首先建立scrapy项目,使用命令 scrapy startproject w3c 建立w3c项目,然后在w3c/spiders下新建爬虫文件w3cSpider.py项目的目录结构如下图所示。

w3c项目目录

上述目录中,settings.py负责进行项目配置如PipeLine调用,延迟下载时间设置,代理设置,user-agent设置等等。 以PipeLine设置为例,抓取的数据后续可能需要多个PipeLine处理,如先进行数据清洗使用DataCleanPipeLine,然后进行数据保存DataSavePipeLine,在settings.py设置这两个pipeLine的代码如下

ITEM_PIPELINES = {
   'w3c.pipelines.DataCleanPipeLine': 300,
   'w3c.pipelines.DataSavePipeLine': 301,
}

上述代码中PipeLine后的数字代表了执行顺序,数字越小越优先执行。settings配置好PipeLine后就需要进行代码编写,具体的PipeLine实现在pipelines.py中实现,一个PipeLine对应pipelines.py中一个类,类名和settings.py中设置的相同。PipeLine的具体实现可以参考下节课程。

items.py用来设置要爬取的数据字段,scrapy借鉴了django模型的思想,将提取的数据组织成一个item类,类中属性是要爬取的字段。如要爬取一个用户的信息,items.py可以这样写

import scrapy
class UserItem(scrapy.Item):
      name =scrapy.Field()
      sex=scrapy.Field()
      age=scrapy.Field()

当从网页中获得用户信息数据后可以将其保存在UserItem中,具体实现方法请见下节课的讲解。

真正的爬虫实现在spiders文件夹中,需要自己手动建立spider文件,具体实现方法见下节课的讲解。