如何在使用python-3.x进行文本预处理期间从下载的网页中删除html或xml命令行,以仅获取文本数据
我尝试过先使用str.translate删除特殊字符和数字,然后从英语词典中对标记进行交叉检查,但仍然包含一些html命令。
def rmpunctuation(text):
chars_to_remove = "!\"·—#$%&'–()*+,-.•−⟨⟩/:;<=>?
@[\]^_`{|}~0123456789"
tr = str.maketrans("", "", chars_to_remove)
return text.translate(tr)
def dictcheck(text):
a = []
for i in range(0,len(text)):
if(d.check(text[i]) == True):
a.append(text[i])
return a
我希望输出是所有单词的列表,这些单词是网页上的实际文本,而不是一些xml或html代码。
答案 0 :(得分:0)
您尝试过正则表达式吗?
如果您在代码中包含以下内容,则会从字符串中删除网址和特殊字符
import re
clean_string= re.sub(r'http\S+', ' ', orginal_string)
#To remove the other characters that you have mentioned you could do the following:
clean_string= re.sub("!\"·—#$%&'–()*+,-.•−⟨⟩/:;<=>?
@[\]^_`{|}~0123456789", ' ', orginal_string)