栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python > python爬虫

python爬虫中如何处理429错误?

python爬虫 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python爬虫中如何处理429错误?

我们在使用python爬虫爬取页面的过程中爬到某个时刻异常报错,如果是被反爬抓到了,就是403错误,那有的时候会出现429错误是什么意思呢?429错误是指在爬虫的过程中同一时间访问频率过高,因此控制访问的速度就可以了。本文介绍python爬虫中处理429错误的方法及具体代码。

什么是429错误?

429是Too Many Requests,http代码429表示访问过快。意思就是同一时间访问频率过高,大多是因为程序并发太高超过代理那边给的帐号的并发限制了。

如何处理?

控制访问的速度就可以了。

有些服务器会在返回的头部中添加"Retry-After",这是通知多久之后重试,获取这个值,然后sleep就可以了。

python爬虫中处理429错误?

捕获错误

try: 
 
.....
 
except aiohttp.ClientResponseError as e:  # 响应错误
    if status== 429:
        retryAfter="Retry-After"
        headers=e.headers
        sec=getHeader(headers, retryAfter)
        if len(sec)>0:
            sec=int(sec)
            print(status, "请求过快,服务器要求待",sec , url )
            time.sleep(sec) # If the rate limit is renewed in a minute, put 60 seconds, and so on.
        else:
            print(status, "服务器拒绝了请求,表示请求过快。取消重试,请稍后再试!", url)
def getHeader(headers, key):
    key_lower=key.lower()
    headers_lower = {k.lower():v for k,v in headers.items()}
    if (key_lower in headers_lower) :
        return headers_lower[key_lower]
    else:
        return ''

以上就是python爬虫中处理429错误的方法及具体代码,希望能解决你的问题哟~更多python爬虫推荐:python爬虫教程。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/12512.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号