2017-10-23 16 views
0

私は同様の質問で投稿を見つけましたが、実際には私の問題を解決しませんでした。Python requests.exceptions.TooManyRedirects:30リダイレクトを超過

ナスダックのウェブサイトからいくつかのデータを検索しようとしていますが、複数のリクエストを送信するときにこのメッセージが表示されます。私の理解は、ウェブサイトが私を別の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

質問をするのを忘れてしまったようです... – Shadow

+0

@Shadowありがとうオリジナルの投稿を編集しました。私の質問は、エラーメッセージを表示せずにウェブサイトにアクセスする方法です。説明のために – jingz

答えて

0

は、ウェブブラウザで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が正しく停止している無限ループを引き起こしています。

このクライアント側については何もできません。これはサーバー上で修正する必要があるエラーです。あなたがサーバーを制御しているなら、これは別の質問に値するかもしれません。そうでない場合は、その人と連絡を取る必要があります。あるいは、探しているデータを入手するための別の方法を見つける必要があります。

+0

感謝します。 – jingz

+0

私はそれがおそらくこの例であなたを助けなかったことを知っています - しかし、この答えを不幸な真実であるとして受け入れたものとしてマークすることを検討してください。 – Shadow

+0

URLが自分自身にリダイレクトされるかどうかをどのように判断できますか?ヘッダーのどこで見つけることができますか?申し訳ありませんが、プログラミングやPythonの初心者です。 – jingz

関連する問題