码迷,mamicode.com
首页 > 其他好文 > 详细

Scrapy(爬虫框架)中,Spider类中parse()方法的工作机制

时间:2018-07-12 18:16:03      阅读:1085      评论:0      收藏:0      [点我收藏+]

标签:elf   callback   rap   类型   生成器   一个   判断   pipeline   响应   

parse(self,response):当请求url返回网页没有指定回调函数,默认的Request对象的回调函数,用来处理网页返回的response,和生成的Item或者Request对象

以下分析一下parse()方法的工作机制:

1.因为使用的yield,而不是return,parse函数将会当做一个生成器使用,scrapy会注意调用parse方法中生成的结果,并且判断该结果是一个什么样的类型

2.如果是request则会加入爬取队列中,如果是item类型则会使用pipeline处理,其他类型则会返回错误信息

3.scrapy取到第一部分的request不会立马就去发送request,只是将这个request放到队列中,然后接着从生成器中获取

4.取完了第一部分的request,然后再获取第二部分的item,取到item了,就会放到对应的pipeline中处理

5.parse方法作为回调函数(callback),赋值给Request,指定parse()方法处理这些请求scrapy.Request(url,callback=self.parse)

6.Request对象经过调度,执行生成scrapy.http.response()响应对象,并送回parse()方法,直到调度器中没有Requset(递归的思路)

7.取尽之后,parse()工作结束,引擎再根据对列和pipeline中的内容去执行相应的操作

8.程序在取得各个页面的items前,会先处理完之前所有的request对列的请求,然后再提取items

Scrapy(爬虫框架)中,Spider类中parse()方法的工作机制

标签:elf   callback   rap   类型   生成器   一个   判断   pipeline   响应   

原文地址:https://www.cnblogs.com/lz0504/p/9300373.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!