Python实战之scrapy爬虫的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()方法,直到调度器中没有Request(递归思路)。

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

8、程序在取得各方面的item前,会先处理完之前所有的request队列中的请求,然后在提取items



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值