错误记录:
1.requests.exceptions.TooManyRedirects: Exceeded 30 redirects
错误提示是requests库有太多的重定向:超过了30个重定向
解决办法:
error_url = requests.get(news, headers=headers, allow_redirects=False) print(error_url.status_code) mypage = error_url.headers["Location"]
2.KeyError:
error_url.headers["Location"] #这里报错
dict[key]的方法取值,如果键key不存在,则会出现报错
解决方法:
dict.get(key, default=None)
try:
child_url = requests.get(news, headers=headers)
mypage = child_url.content.decode("gbk")
except:
# allow_redirects=False 拒绝默认的301/302重定向从而可以通过html.headers["Location"]拿到重定向的URL
error_url = requests.get(news, headers=headers, allow_redirects=False)
# 200(成功): 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页
# 301(永久移动) : 请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置
print(error_url.status_code)
try:
# 301
mypage = error_url.headers["Location"]
except:
# 200
mypage = error_url.content.decode("gbk")