python异步协程爬虫报错:【aiohttp.client_exceptions.ClientPayloadError: Response payload is not comple】解决办法

今天在练习异步爬取视频时,程序报错:aiohttp.client_exceptions.ClientPayloadError: Response payload is not completed。

查了很多资料,发现这个异常一般是由于异步请求的响应体没有完整接收导致的。

可以尝试下面的两种解决方案:

  1. 尝试增加响应体接收的超时时间。

  2. 关闭异步请求 session 后重试。代码如下:

async with aiohttp.ClientSession() as session:
    try:
        response = await session.get(url=url)
        # Do something with response
    except aiohttp.ClientPayloadError:
        await session.close()
        session = aiohttp.ClientSession()
        response = await session.get(url=url)
        # Do something with response

这个方法会在遇到 aiohttp.client_exceptions.ClientPayloadError 异常时关闭当前的 session,然后重新创建一个新的 session 并发送请求。

希望能帮到碰到这个问题的朋友。

你可能感兴趣的:(爬虫,python)