Python替换文本

Python替换文本,python,beautifulsoup,Python,Beautifulsoup,您好,我在替换HTML中的所有文本时遇到问题。我想对BeautifulSoup进行谴责,但它并不能取代内容,我在打印内容时出错(并非所有HTML文本都打印出来) 有人知道怎么修吗 错误: Traceback (most recent call last): File "replacing.py", line 28, in <module> print i File "F:\Python\Python27\lib\encodings\cp852.py", line 12, in enc

您好,我在替换HTML中的所有文本时遇到问题。我想对BeautifulSoup进行谴责,但它并不能取代内容,我在打印内容时出错(并非所有HTML文本都打印出来)

有人知道怎么修吗

错误:

Traceback (most recent call last):
File "replacing.py", line 28, in <module>
print i
File "F:\Python\Python27\lib\encodings\cp852.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2019' in position 25: character maps to <undefined>
回溯(最近一次呼叫最后一次):
文件“replacing.py”,第28行,在
打印i
文件“F:\Python\Python27\lib\encodings\cp852.py”,第12行,在encode中
返回编解码器.charmap\u encode(输入、错误、编码\u映射)
UnicodeEncodeError:“charmap”编解码器无法对位置25中的字符u'\u2019'进行编码:字符映射到

在python用于打印消息的编解码器中,似乎找不到您试图打印的字符之一。也就是说,你有一个字符的数据,但你不知道它应该是什么符号,所以你不能打印它。将HTML简单转换为unicode格式应该可以解决您的问题

关于如何做到这一点的好问题:


在python用于打印消息的编解码器中,似乎找不到您试图打印的字符之一。也就是说,你有一个字符的数据,但你不知道它应该是什么符号,所以你不能打印它。将HTML简单转换为unicode格式应该可以解决您的问题

关于如何做到这一点的好问题:


这里有两个主要问题。第一个是编码问题,您试图打印不可打印的字符。为此,您可以使用以下内容中的答案:

或者,为了更深入的解释:

(现在我看了更多,它可能已经过时了,但仍然是一本有趣的读物)

但是,您的代码也存在逻辑问题

if i == words:
此行不检查是否在单词中找到了
i
,而是将
i
与您不需要的单词列表进行比较。我建议进行以下更改:

words = {'Shop','Car','Home','Generic','Elements'}

for i in texts:
    if i in words:
        i = '***'

words
转换为a允许平均
O(1)
查找,并使用
if i in words
检查
i
是否在words中找到。

这里有两个主要问题。第一个是编码问题,您试图打印不可打印的字符。为此,您可以使用以下内容中的答案:

或者,为了更深入的解释:

(现在我看了更多,它可能已经过时了,但仍然是一本有趣的读物)

但是,您的代码也存在逻辑问题

if i == words:
此行不检查是否在单词中找到了
i
,而是将
i
与您不需要的单词列表进行比较。我建议进行以下更改:

words = {'Shop','Car','Home','Generic','Elements'}

for i in texts:
    if i in words:
        i = '***'

words
转换为a允许平均
O(1)
查找,使用
if i in words
检查是否在words中找到
i

您介意在您的问题中包含一小部分不会打印的文本吗?您介意在您的问题中包含一小部分不会打印的文本吗?我在迭代中发现了该错误,并修复了它。我有一个关于用空格替换字符串的问题,当字符串中有一个用空格替换的单词时,如何正确地替换简单的单词,例如:输入:“我的新车很好”输出:“我的新***很好”您可以使用
split()
拆分成单个单词,然后使用如下列表替换:感谢您的修复;)祝您有个美好的一天!我在迭代中发现了这个错误,并修复了它。我有一个关于用空格替换字符串的问题,当字符串中有一个用空格替换的单词时,如何正确地替换简单的单词,例如:输入:“我的新车很好”输出:“我的新***很好”您可以使用
split()
拆分成单个单词,然后使用如下列表替换:感谢您的修复;)祝您有个美好的一天!