尝试删除标签,但内存很快不足



我正在尝试做一些简单的事情,即从HTML代码中删除所有标签,这些标签位于非常大的csv文件(3 GB)的行中。 我尝试使用以下代码使用美丽的汤

remove_tags=['p','li','ul','pre','h1']   
soup=BeautifulSoup(row[1])
for tag in remove_tags:
    for match in soup.findAll(tag):
           match.replaceWithChildren()

但是,对于如此大的文件,我很快就会耗尽内存并发生内存错误(我的机器上甚至有很多 RAM,所以这必须使用大量内存)。 所以我想知道是否有人知道一种内存密集度较低的方法来做到这一点。 也许正则表达式可以通过删除所有内容来工作<>(但是,我不知道如何使用正则表达式)

注意:我想删除所有类型的 HTML 标记。 上面代码中的remove_tags列表只是构造的,因为这些是我可以在数据中看到的所有内容,所以如果有一个不需要指定标签名称的方法,那也将起作用。

使用(非常)幼稚的正则表达式方法:

import re
re.sub(r'<[^>]+>', '', row)

最新更新