我找到了类似问题的帖子,但他们并没有真正解决我的问题。
我正在尝试从纳斯达克网站上找到一些数据,但在发送多个请求时收到此消息。我的理解是网站正试图将我重定向到另一个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.
答案 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正在停止。
对于这个客户端,你无能为力。这是需要在服务器上修复的错误。如果您控制服务器,那么这可能值得另一个问题。如果没有,那么您需要与相关人员取得联系,或者找到其他方式来获取您所寻找的数据。