HTTP 202状态码的处理方式

本文介绍了一种解决爬虫抓取数据时遇到202状态码的方法,通过对请求进行重试直至获得200状态码,确保能成功获取目标网站的JSON数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在爬某网站,谷歌浏览器打开是ok的,可以显示网页内容。程序有时候也可以抓到相应的内容,可有时候就不行。我抓取的是json格式的数据,在解析的时候有时就成功,有时报错。经过一番盘查,发现解析报错的时候,response返回状态码是202,咦。。。这个从来没见过

于是,又是一番谷歌,找到相关解释:

1.202 Accepted 表示服务器端已经收到请求消息,但是尚未进行处理。但是对于请求的处理确实无保证的,即稍后无法通过 HTTP 协议给客户端发送一个异步请求来告知其请求的处理结果。这个状态码被设计用来将请求交由另外一个进程或者服务器来进行处理,或者是对请求进行批处理的情形

2.202状态码适合异步任务或者说需要处理时间比较长的请求,避免HTTP连接一直占用,超时这些情况。常见的就是使用MQ异步处理批任务,客户端定时轮训结果。

这也没有解决方案啊,于是乎,debug,找到了一些灵感。在有些时候,返回的是200,有时是202。

重点来了,解决方案。。。

能不能一直请求一个网址,遇到状态码是202的就再去请求一遍,直到状态码是200。最终,这个方案解决了状态码是202的问题。

当然,这个是我针对某网站的解决方案,至于其他网站是不是也是同样的解决方案,就要单独分析了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值