Ошибка глубины рекурсии при использовании BeautifulSoup с многопроцессорной картой пула

Я использую BeautifulSoup для разбора html-файлов, в то время как все сценарии, которые я пишу, работают хорошо, но медленно. Так что я экспериментирую с использованием многопроцессорного пула воркеров вместе с BeautifulSoup, чтобы моя программа могла работать быстрее (У меня около 100 000 -1 000 000 html-файлов для открытия ). Сценарий, который я написал, более сложный, но я записал здесь небольшой пример. Я пытаюсь сделать что-то подобное и продолжаю получать сообщение об ошибке

«RuntimeError :превышена максимальная глубина рекурсии при травлении объекта»

Отредактированный код

from bs4 import BeautifulSoup
from multiprocessing import Pool
def extraction(path):
   soup=BeautifulSoup(open(path),"lxml")
   return soup.title

pool=Pool(processes=4)
path=['/Volume3/2316/http/www.metro.co.uk/news/852300-haiti-quake-victim-footballers-stage-special-tournament/crawlerdefault.html','/Volume3/2316/http/presszoom.com/story_164020.html']
print pool.map(extraction,path)
pool.close()
pool.join()

узнал, что ошибка возникает из-за того, что BeautifulSoup превышает глубину стека интерпретатора Python.Я попытался поднять лимит и запустить ту же программу (, я поднялся до 3000 ), но ошибка остается прежней. Я перестал поднимать лимит, потому что проблема с BeautifulSoup при открытии html-файлов.

Использование многопроцессорной обработки с BeautifulSoup ускорит время выполнения, но я не могу понять, как применить ее для открытия файлов.

Есть ли у кого-нибудь другой подход к тому, как использовать BeautifulSoup с многопроцессорной обработкой или как справиться с такими ошибками?

Буду признателен за любую помощь, я часами сижу, пытаясь исправить это и понять, почему я получаю сообщение об ошибке.

Изменить

Я протестировал приведенный выше код с файлами, которые указал в путях, и получил ту же ошибку RuntimeError, что и выше

Доступ к файлам можно получить здесь(http://ec2-23-20-166-224.compute-1.amazonaws.com/sites/html_files/)

10
задан kich 29 April 2012 в 20:43
поделиться