我想从sgmlfi中删除html标记

2024-09-29 21:49:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有如下sgml文件:

        <DOC>
        <DATE> September 10 2017 02:45 </DATE>
        <HL> 経済は落ち込んでいます </HL>
        <TEXT>
        <p>
        それはその国にとって良い時期ではありません。
        <p>
        コミュニティは彼を愛している
        </TEXT>
        </DOC>

我想删除html标签,并保持信息在新的一行,因为是。我想用python来做

我试过一些代码,但不起作用

import re
import os
import sys
data_dir = sys.argv [1]

    def cleanhtml(data_dir):
        cleanr = re.compile('<.*?>')
        cleantext = re.sub(cleanr, '', data_dir)
        return cleantext

代码运行时没有错误或输出


Tags: 文件textimportredatadatedocdir
1条回答
网友
1楼 · 发布于 2024-09-29 21:49:32

不要用regex解析XML/HTML,它永远不会在所有情况下都正常工作。改用html解析器,例如BeautifulSoup

data = '''<DOC>
    <DATE> September 10 2017 02:45 </DATE>
    <HL> 経済は落ち込んでいます </HL>
    <TEXT>
    <p>
    それはその国にとって良い時期ではありません。
    <p>
    コミュニティは彼を愛している
    </TEXT>
    </DOC>
'''

from bs4 import BeautifulSoup

soup = BeautifulSoup(data, 'html.parser')

print(soup.get_text(strip=True, separator='\n'))

印刷品:

September 10 2017 02:45
経済は落ち込んでいます
それはその国にとって良い時期ではありません。
コミュニティは彼を愛している

相关问题 更多 >

    热门问题