scrapy 通过meta中的cookiejar 保证一个请求链的cookie信息

在现实的业务中,比如图片验证码的识别。

在爬虫爬取的时候页面被重定向到了一个验证码识别页面,比如说一个字符验证,这种就是单独一个请求。不是滑动验证那种,需要一个容器加载js文件,然后拖动验证码识别。

对于字符验证,就是一个post请求,但是scrapy中返回的是一个文本界面,如果,这个时候你把url复制出来然后再请求,通过了验证,但是你请求的已经是另外一个会话下的验证了,不是当前会话下的验证,那么如何保证当前的验证就是我们scrapy中的那个会话下的验证码呢,这时候就需要scrapy中的cookie机制,cookiejar。通过这个cookiejar能够保证一个请求链的cookie的传递。

但是还需要scrapy中的一个函数:

yield scrapy.FormRequest.from_response(
                response,
                url=self.root_url + '/inc/randomimage.php', callback=self.parse_img,
                headers=self.headers, dont_filter=True,
                meta={'address_id': address_id, 'start_url': start_url, "cookiejar": response.meta["cookiejar"]}
            )

 

这个时候就能够保证不再是一个新的请求,而是基于当前请求cookie下加载的验证码。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值