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

URLの構造

http://hoge.sample.com/category/diet?q=drink#ojousama スキーム scheme httpやhttpsのようにプロトコルを表す オーソリティ auth …

no image

Python-Scrapyを使う

Scrapyとは? Scrapyはクローリング・スクレイピングのためのPythonのフレームワークである。 Scrapyを使うと、プログラマーはサイトごとの個別処理を書けばよく、その他の面倒なことをフ …

no image

mecab

mecabとは? 自然言語処理ライブラリである。 形態素解析 与えられた文章を形態素という文章の最小単位に分解し、その最小単位の品詞や読みを判別すること。 公式ドキュメント MeCab: Yet An …

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 …