1
我試圖使用與BeautifulSoup多處理一起,但我遇到一個maximum recursion depth exceeded
錯誤:多重BeautifulSoup bs4.element.Tag
def process_card(card):
result = card.find("p")
# Do some more parsing with beautifulsoup
return results
pool = multiprocessing.Pool(processes=4)
soup = BeautifulSoup(url, 'html.parser')
cards = soup.findAll("li")
for card in cards:
result = pool.apply_async(process_card, [card])
article = result.get()
if article is not None:
print article
articles.append(article)
pool.close()
pool.join()
據我所知,card
是<class bs4.element.Tag>
型的,問題可能有與酸洗這個對象有關。目前尚不清楚如何修改我的代碼來解決這個問題。
[最大遞歸錯誤Python]的可能重複(http://stackoverflow.com/questions/19529708/maximum-recursion-error-python)答案在這裏相關。此外,如果你因爲某些原因照做中的鏈接,另一種選擇是使用一個更好的序列化,像(我的代碼)'dill'這是在'multiprocess'(一個'multiprocessing'叉使用更好的系列化)。不知道它是否適用於'bs4'對象。 –