这个问题csdn里面的资料比较少,所以记录一下,如果数据完整但是报Chunked的可以参考其他办法。
主要适用于requests.get时获取数据不完整导致,即如果数据量大,一次get可能只能获得一部分数据,所以会导致Chunked报错。
可以直接写个循环捕捉异常直致到获取完整数据为止:
思路如下:
while True: #开始循环
try:
your code
except your except:
print(your except)
continue #如果报错继续循环
break #不报错终止循环
上面的代码如果数据不大的话基本多几次获取都可以成功,但是遇到数据量特别大的情况下回出现死循环(requests.get是这样,其他库不清楚)。
这里需要将requests.get改成requests.session().get,至于原理我不太清楚,但是当get不行时,我在想既然是分段加载,那么用session保持会话行不行,希望高手解答。
具体代码如下:
url = 'xxxx'
resp = requests.session().get(url, proxies=proxies, headers=headers, cookies=cookies, stream=True, timeout=3) #get提交请求,(参数这里我把能放的都放进去了) stream参数用来分段获取数据
#开始循环
while True:
resp2 = bytes() #声明一个字节流类型
try: