Python スクレイピング

Python3 RecursionError: maximum recursion depth exceeded

投稿日:2017年11月14日 更新日:

再起処理の自作URLクローラーを夜回したら、朝起きたら落ちていた。

  File "/usr/lib/python3.5/threading.py", line 224, in __init__
 self._release_save = lock._release_save
RecursionError: maximum recursion depth exceeded

 

公式ドキュメントによると、組み込み例外というらしい。

https://docs.python.jp/3/library/exceptions.html

exception RecursionError(原文)
この例外は RuntimeError を継承しています。インタープリタが最大再帰深度 (sys.getrecursionlimit() を参照) の超過を検出すると送出されます。

対策はhttps://qiita.com/narupo/items/e25ac05a9065c0bd9c03 に出ていた。

import sys
sys.setrecursionlimit(10000)

上限はいくつなんだろう?

sys.setrecursionlimit(limit)(原文)
Python インタプリタの、スタックの最大の深さを limit に設定します。この制限は Python プログラムが無限に再帰し、 C スタックがオーバーフローしてクラッシュすることを防止するために設けられています。

limit の最大値はプラットフォームによって異なります。深い再帰処理が必要な場合にはプラットフォームがサポートしている範囲内でより大きな値を指定することができますが、この値が大きすぎればクラッシュするので注意が必要です。

 

-Python, スクレイピング

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

環境構築・Pythonのインストール

おまけ Eclipseのプラグイン PyDevをインストールする マーケットプレースで「python」と検索すると出てくる。 インストールしよう。 インストール完了後、再起動を求められる。 再起動しよ …

no image

Python urlibなど、スクレイピングTIPS

Python urlibについて Webページを手軽に取得できる。 HTTPヘッダーのカスタマイズ、Basic認証など複雑な処理は苦手。 サードパーティライブラリのRequestsを使おう。 レスポン …

no image

Ubuntu16.04にPython3環境を構築する

Ubuntu16.04をインストールしたら、この順でやっていこう。 1.aptのパッケージリスト最新化 $ sudo apt update   2.Python3の最新化 $ sudo ap …

no image

Python mainメソッドと関数メソッドの定義

mainメソッド if __name__ == ‘__main__’: if __name__ == ‘__main__’: #処理の内容 test()   関数メソ …

no image

PythonでHello World!

Pythonファイルの拡張子は「.py」 Pythonファイルは「.py」で保存する。 例)helloworld.py 文字出力は print(‘出力する文字’) 例)prin …