我的代码抛出了这个错误:
defs = LI_re.findall(text)
TypeError: cannot use a string pattern on a bytes-like object
所以这是我用来从字典网站清理一段提取信息的代码。
任何帮助都将不胜感激。
clean_defs = []
LI_re = re.compile(r'<LI>(.*)</LI>')
HTML_re = re.compile(r'<[^>]+>\s*')
defs = LI_re.findall(text) # THE ERROR HAPPENS HERE
# remove internal tags
for d in defs:
clean_d = HTML_re.sub('',d)
if clean_d: clean_defs.append(clean_d)
return clean_defs #My return from the function or whatever
答案 0 :(得分:0)
text
显然是一个字节对象。有几种解决方案。您可以将text
更改为字符串:
text = text.decode()
这将给出字符串(str
)结果。
或者更改正则表达式以使用字节对象:
LI_re = re.compile(br'<LI>(.*)</LI>')
HTML_re = re.compile(br'<[^>]+>\s*')
这将给出字节对象结果。