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

クローラーとスクレイピングの構成 

くローラーとスクレイピング(スクレイパー?)は分離しておく。 クローラーが最後まで終わってからスクレイピングではなく、クローラーからメッセージを送って、そのタイミングでスクレイピングを開始するようにす …

no image

Pythonでスクレイピング

スクレイピングに使えるPythonライブラリ lxml…C言語ライブラリのlibxml2とlibxsltをPythonに組み込んだもの Beautiful…Soup シンプルで分かりやすいAPI py …

no image

Python3のお勉強

環境構築・Pythonのインストール PythonでHello World! 引数を与えてPythonスクリプトを実行する Pythonの文法 付録 Pythonコマンド 1.環境構築・Pythonの …

no image

Pythonの文法

1行に1文だけ書いていく。 文字列は\”又は\’で囲む 例) urlopen(‘http://www.yahoo.com/’) 例) urlopen(& …

no image

【Python クローリング&スクレイピング】を読んで

紀伊国屋で買いました。 カバー外してます。 クローリングフレームワーク lxml Beautiful Soup Scrapy クローリング→データ収集 スクレイピング→収集したものからデータ抽出するこ …