multiprocessingでBeautifulSoupのオブジェクトを扱おうとしたらRecursionErrorが発生した時の対処法。

BeautifulSoup4によるウェブスクレイピングで、multiprocessingを使って並列処理するときに嵌ったエラーの対処法。

事例

Pool.map()の引数にbs4.element.Tagみたいなオブジェクトのリストを渡すと、

RecursionError: maximum recursion depth exceeded

というエラーが発生する。

対処法

以下のページが参考になる。
stackoverflow.com

Pool()を使うときはbs4.elementなんたら型のオブジェクトではなく、一旦文字列に変換したものを渡し、Poolに渡す関数の中で再度パースする。

コメント