试图删除标签但快速耗尽内存

时间:2013-09-20 13:37:39

标签: python beautifulsoup out-of-memory

我正在尝试做一些简单的事情,即从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列表,因为这些都是我在数据中可以看到的,所以如果有一个方法不需要指定标记名,那也可以。

1 个答案:

答案 0 :(得分:2)

使用(非常)天真的正则表达式方法:

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