scrapy-爬取流程

什么时候到pipeline,什么 时候到spider这个就不说了,这个是框架跳转到的流程

关键是访问之前要登录怎么办,数据还要注入呢

所以这次我们来关注一下网页下载前的流程

start_urls


这是个列表,里面就是爬取的链接了

我们前面爬取就只是写了一个,但是其实可以写多个

链接又是怎么访问的呢

parse_start_url


这东西你就可以手动提取链接返回了

start_requests

这东西你就得好好注意了

从入参就可以发现,这东西必然和响应没关系


因为这个是请求之前的东西

start_urls就是通过这个方法,把链接变成请求,然后才有后续故事的

parse

默认就是他来解析的,大家都知道


所以流程是这样的

0. start_urls:链接地址

1. start_reqeusts:链接变请求,开始访问

2. paser_start_url:创建新请求

3. parse:解析网页


这是默认情况,但是,有一个东西那就很强大了

callback


请求的指定解析方法

首先明确几点

1. 任意返回:item或者Request随便返回,调度器会自动识别和下发

2. 任意指定:解析方法在于callback,默认parse,但是可以任意指定

所以,其实我们可以不按照它规定的流程走,解析方法也不一定只有一个

多个解析方法的话,同一个网页我们就可以爬取多种组合的资源,而不是只有一种

换言之,item不一定所有的数据都要填充完毕

item的清单,我们可以部分进行组合,指定多样的解析,一个网页同时分两步,爬取两类资源

自定义流程

0.  所以,工程里面可以不要start_urls

1. 我们自己重写start_reqeusts,构造请求,指定解析方法,比如login,然后返回请求 

2. 然后login中进行参数的注入,完成登录操作,再指定解析方法,比如parse_source,返回新请求

3. 最后,parse_source,抓取数据

基于这两点的配合

1. item和Request的自动识别

2. callback的任意指定

只要进门了start_reqeusts,后面的流程 自己任意定义

不论跳转还是参数注入

同时,不要忘记新发现并且可扩展的一个东西--数量

1. 请求的数量

2. 资源的数量

所以

1. start_urls中可以指定多个链接

2. start_request中可以构造多个请求

3. parse可以添加多个请求

4. parse可以解析多份资源

5.  login中可以更换用户登录,作为新屏蔽方式


很简单,但是扩展性很强大,自定义程度灰常高

在进行登录爬取一类任务中不可或缺,十分重要


最后一句,别忘了cookie,要不登录一次后面都不认得你了

登录爬取值得试试


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值