我有一个巨大的HTML页面语料库,我想从这个数据集中排除所有内容,最后只提取HTML标签(我想要标签,而不是内容)。例如,如果我有以下html元素:
<div class="tensorsite-content__title ">
Differentiate yourself with the TensorFlow Developer Certificate </div>
我只需要提取:
<div class="tensorsite-content__title ">
</div>
我已经尝试使用(?!)负的lookahead正则表达式来排除与匹配的html标记
tags=re.sub('.*?!<[^<]+?>', '',htmlwithcontent )
但是,尽管它看起来并不聪明和高效,显然,它甚至不起作用
你知道吗?最好用python
正如Ivar所评论的,HTML解析器是正确处理此类问题的唯一方法:
印刷品:
See Python Demo
更新
如果HTML不是太大的文件,将整个文件读入内存并传递给解析器是有意义的,因此:
如果输入在一个非常大的文件中,那么逐行或分块“输入”解析器可能是有意义的,而不是尝试将整个文件读入内存:
逐行:
或者更有效地:
以32K为单位阅读:
当然,您可以选择更大的块大小
相关问题 更多 >
编程相关推荐