Python requests.exceptions.TooManyRedirects:超过30个重定向

时间:2017-10-23 03:53:21

标签: python redirect python-requests

我找到了类似问题的帖子,但他们并没有真正解决我的问题。

我正在尝试从纳斯达克网站上找到一些数据,但在发送多个请求时收到此消息。我的理解是网站正试图将我重定向到另一个URL,然后重定向到另一个URL并最终循环,但请求库在一定数量的重定向后停止。但是,我收到一条错误消息,如下所示。有人可以帮忙解决一下吗?

import requests

header = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'}

source1 = requests.get('http://www.nasdaq.com/earnings/report/AAPL',headers = header ).text
source2 = requests.get('http://www.nasdaq.com/earnings/report/FB',headers = header ).text
source3 = requests.get('http://www.nasdaq.com/earnings/report/AMZN',headers = header ).text
source4 = requests.get('http://www.nasdaq.com/earnings/report/BABA',headers = header ).text
source5 = requests.get('http://www.nasdaq.com/earnings/report/IBM',headers = header ).text

错误消息如下:

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
source = requests.get('http://www.nasdaq.com/earnings/report/AAPL',headers = header ).text
  File "C:\Python36\lib\site-packages\requests\api.py", line 72, in get
return request('get', url, params=params, **kwargs)
  File "C:\Python36\lib\site-packages\requests\api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
  File "C:\Python36\lib\site-packages\requests\sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
  File "C:\Python36\lib\site-packages\requests\sessions.py", line 640, in send
history = [resp for resp in gen] if allow_redirects else []
  File "C:\Python36\lib\site-packages\requests\sessions.py", line 640, in <listcomp>
history = [resp for resp in gen] if allow_redirects else []
  File "C:\Python36\lib\site-packages\requests\sessions.py", line 140, in resolve_redirects
raise TooManyRedirects('Exceeded %s redirects.' % self.max_redirects, response=resp)
requests.exceptions.TooManyRedirects: Exceeded 30 redirects.

1 个答案:

答案 0 :(得分:0)

尝试在网络浏览器中点击http://www.nasdaq.com/earnings/report/AAPL。 这对python来说不​​是问题 - 这个网站实际上会重定向你太多次。

如果您阅读了请求中的标题,您会注意到此网址重定向到http://www.nasdaq.com/earnings/report/aapl。然后转到该网址会再次将您重定向到http://www.nasdaq.com/earnings/report/aapl。这导致了一个无限循环,python正在停止。

对于这个客户端,你无能为力。这是需要在服务器上修复的错误。如果您控制服务器,那么这可能值得另一个问题。如果没有,那么您需要与相关人员取得联系,或者找到其他方式来获取您所寻找的数据。