四时宝库

程序员的知识宝库

Python网络爬虫框架Scrapy笔记(一)

先前在工作中也有涉及到Scrapy,只是当时有其他人负责网络爬虫工作,并未深入去学习该框架。现在想从某网站上面“爬”点数据,于是利用闲时正在学习Scrapy,在这主要是记录一下本人的学习笔记,希望对其他人也有帮助。

【注】本文所学的是Scrapy官网最新版,即scrapy1.2,官网:https://scrapy.org/

Scrapy

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

Scrapy 使用 Twisted这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求。

Scrapy整体框架--Architecture overview

上图中几个核心部件介绍:

  • 引擎(ENGINE):用来处理整个系统的数据流处理,触发事务。

  • 调度器(SCHEDULER):用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回。

  • 下载器(DOWNLOADER):用于下载网页内容,并将网页内容返回给蜘蛛。

  • 蜘蛛(SPIDERS):蜘蛛是主要干活的,用它来制订特定域名或网页的解析规则。编写用于分析response并提取item(即获取到的item)或额外跟进的URL的类。 每个spider负责处理一个特定(或一些)网站。

  • 项目管道(ITEM PIPELINES):定义我们需要的结构化数据,使用相当于dict,负责处理有蜘蛛从网页中抽取的项目,他的主要任务是清晰、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并经过几个特定的次序处理数据。

  • 中间件(MIDDLEWARES):相当于钩子,可以对爬取前后做预处理,如修改请求header,url过滤等。有Downloader middlewares,Spider middlewares,Scheduler Middlewares等中间件

【下图:旧版本文档的架构图】




【注】在windows系统下python3环境下暂时无法安装Scrapy1.2版本。

Python 3 is not supported on Windows. This is because Scrapy core requirement Twisted does not supportPython 3 on Windows.

Scrapy初体验

  • 在Ubuntu16.04环境下用virtualenv建立一个”虚拟环境“,并用python3进行Scrapy开发。

  1. 首先安装virtualenv: pip install virtualenv

  2. 其次建立一个python3开发环境:virtualenv -p /usr/bin/python3 py3env

  3. 激活刚创建的virtualenv的python3环境:source py3env/bin/activate

  4. 安装Scrapy:pip install scrapy

查看安装情况(列表)pip list

  • 试跑一范例:quotes_spider.py

创建一爬虫py文件,命名quotes_spider.py并保存该文件

然后在终端运行下面语句:scrapy runspider quotes_spider.py -o quotes.json

在当前文件夹下就会生成一爬虫所得到的文件quotes.json

scrapy runspider quotes_spider.py -o quotes.json



运行结果,得到我们在parse函数里所解析到的字段信息。

先记录下这些,待明天继续学习继续更新。大家也可以下载最新的scrapy文档去学习。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接