2016-10-05 6 views
3

私は5~10秒ごとにアマゾンアイテムの価格をチェックするPythonスクリプトを作成しています。問題は、スクリプトが数分後に「動作中」に停止することです。コンソールには出力はありませんが、プロセスでは「実行中」と表示されます。数分後にPythonスクリプトが終了する

私は、httpリクエストを作成するリクエストセッションと、リクエストの時間を表示するための時間を使用しています。

私のコードは以下の通りです。

編集:私はwait()関数を削除し、代わりにtime.sleepを使用しました。

EDIT2:私は、スクリプトを停止するには、キーボード割り込みを使用する場合は、ここで

Traceback (most recent call last): 
    File "checker.py", line 85, in <module> 
    page = s.get(url,headers=headers,proxies=proxyDict,verify=False,timeout=5) 
    File "C:\Python27\lib\site-packages\requests\sessions.py", line 488, in get 
return self.request('GET', url, **kwargs) 
    File "C:\Python27\lib\site-packages\requests\sessions.py", line 475, in request 
resp = self.send(prep, **send_kwargs) 
    File "C:\Python27\lib\site-packages\requests\sessions.py", line 596, in send 
    r = adapter.send(request, **kwargs) 
    File "C:\Python27\lib\site-packages\requests\adapters.py", line 423, in send 
timeout=timeout 
    File "C:\Python27\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 589, in urlopen 
self._prepare_proxy(conn) 
    File "C:\Python27\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 797, in _prepare_proxy 
conn.connect() 
    File "C:\Python27\lib\site-packages\requests\packages\urllib3\connection.py", 
line 267, in connect 
self._tunnel() 
    File "C:\Python27\lib\httplib.py", line 729, in _tunnel 
line = response.fp.readline() 
KeyboardInterrupt 

が、それはそれは無限ループに実行されている要求された出力ですか?

+0

アクティブループとは何ですか?どうすれば変更できますか?私はもともとtime.sleep()を使用していましたが、time.sleep()がプログラムの動作を停止させているかもしれないと思ったので、それをカスタム関数に変更しました。 –

+0

@ShikharGuptaアクティブループとは、あなたが 'pass'で持っている' while'ループのようなことをしないループを意味します。 – afsafzal

+0

あなたのコードのどの行が止まっているのか知っていますか?最後に表示される出力は何ですか? – afsafzal

答えて

0

s.get()関数へのtimeout引数はトリッキーです。 Here私はその珍しい行動の良い説明を見つけました。 timeoutは、要求されたURLが応答しない場合にプロセスを停止しますが、無限に応答する場合は停止しません。

あなたのケースでは、要求されたページが応答を無限ループで送信しているだけで、接続が確立されます。

関数呼び出し全体のタイムアウトを設定できます。Timeout function if it takes too long to finish

+0

getout()関数をタイムアウトさせるためにeventletを使用しましたが、これで解決しました。 –

関連する問題