Python学习-scrapy2

接触爬虫功能后,发现一个好的爬虫功能可以帮助自动化信息获取,在日常关键信息搜集和解析方面效率提升很明显。为了更系统深入学习,接下来需要一步步研究学习Scrapy框架来实现。

这里使用官方文档介绍下Scrapy框架:

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。

1、创建一个Scrapy项目

下发命令scrapy startproject tutorial后,就在此/Users/tutorial目录下创建了开发文件夹。

创建的tutorial文件夹内容目录

图中目录文件说明:

scrapy.cfg: 项目的配置文件

tutorial/: 该项目的python模块

tutorial/items.py: 项目中的item文件

tutorial/middlewares.py: 项目中的middlewares文件

tutorial/pipelines.py: 项目中的pipelines文件

tutorial/settings.py: 项目的设置文件

tutorial/spiders/: 放置spider代码的目录

这些自动创建的文件是做什么用的可以先从下面各系统功能逻辑架构图来理解。

Scrapy架构图

Scrapy架构图各系统功能组成说明:

Engine:核心引擎,负责控制和调度各个组件,保证数据流转。

Scheduler:负责管理任务、过滤任务、输出任务的调度器,存储、去重任务都在此控制。

Downloader:下载器,负责在网络上下载网页数据,输入待下载URL,输出下载结果。

Spiders:用户自己编写的爬虫脚本,可自定义抓取意图。

Item Pipeline:负责输出结构化数据,可自定义输出位置。

图中MIDDLEWARE分为两部份功能用途:

Downloader middlewares:介于引擎和下载器之间,可以在网页在下载前、后进行逻辑处理。

Spider middlewares:介于引擎和爬虫之间,可以在调用爬虫输入下载结果和输出请求/数据时进行逻辑处理。

Scrapy架构图事物运行说明(图中数字):

1.引擎从自定义爬虫中获取初始化请求(也叫种子URL)。

2.引擎把该请求放入调度器中,同时引擎向调度器获取一个待下载的请求(这两部是异步执行的)。

3.调度器返回给引擎一个待下载的请求。

4.引擎发送请求给下载器,中间会经过一系列下载器中间件。

5.这个请求通过下载器下载完成后,生成一个响应对象,返回给引擎,这中间会再次经过一系列下载器中间件。

6.引擎接收到下载返回的响应对象后,然后发送给爬虫,执行自定义爬虫逻辑,中间会经过一系列爬虫中间件。

7.爬虫执行对应的回调方法,处理这个响应,完成用户逻辑后,会生成结果对象或新的请求对象给引擎,再次经过一系列爬虫中间件。

8.引擎把爬虫返回的结果对象交由结果处理器处理,把新的请求对象通过引擎再交给调度器。

如上执行完后从1开始重复执行,直到调度器中没有新的请求处理。

如上架构学习资料来源此作者地址,感谢分享学习。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容