【问题标题】:Python requests.exceptions.TooManyRedirects: Exceeded 30 redirectsPython requests.exceptions.TooManyRedirects:超过 30 个重定向
【发布时间】:2017-10-23 03:53:20
【问题描述】:

我发现了类似问题的帖子,但它们并没有真正解决我的问题。

我正在尝试从 Nasdaq 网站查找一些数据,但在发送多个请求时收到此消息。我的理解是,该网站试图将我重定向到另一个 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.

【问题讨论】:

  • 你好像忘记问问题了……
  • @Shadow 谢谢我已经编辑了我的原始帖子。我的问题是如何访问该网站而不会出现该错误消息。

标签: python redirect python-requests


【解决方案1】:

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

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

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

【讨论】:

  • 我知道在这种情况下它可能对您没有帮助 - 但请考虑将此答案标记为已接受,因为这是不幸的事实。
  • 如何判断 URL 是否自行重定向?我在哪里可以在标题中找到它?抱歉,我是编程和/或 Python 新手。
  • 有趣的是,我可以使用浏览器(chrome)打开 URL……但我知道如果我尝试多次加载该页面,它会显示该错误消息,这是为什么呢?
  • 我当时才注意到它有效。他们那边会出问题的。如果您使用的是 linux,则可以使用 wget 作为查看响应将您带到哪里的一种方式。否则一些健康的谷歌搜索会让你上路:)
猜你喜欢
  • 2021-05-07
  • 2014-07-02
  • 1970-01-01
  • 2017-07-03
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 2013-11-25
  • 2018-12-24
相关资源
最近更新 更多