这是一个提供术语并抓取的应用程序 Urban Dictionary并返回页面中的第一个含义。 这是我到目前为止的代码:
import re
import urllib.request
term = input('Enter a word: ')
url = "https://www.urbandictionary.com/define.php?term=" + term
rawData = urllib.request.urlopen(url).read()
decodedData = rawData.decode("utf-8")
x = re.search('div class="meaning"', rawData)
start = x.start()
end = x.end()
result = rawData[start:end]
print(result)
但我收到以下错误
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
print(decodedData)
File "~\Python\Python35-32\lib\idlelib\PyShell.py", line 1344, in write
return self.shell.write(s, self.tags)
UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 95889-95889: Non-BMP character not supported in Tk
如何排除无法解码的字符?
最佳答案
好的,要解决您的问题,您只需实际使用解码后的数据即可。目前您正在解码数据,但随后您使用 rawData
:
import re
import urllib.request
term = input('Enter a word: ')
url = "https://www.urbandictionary.com/define.php?term=" + term
rawData = urllib.request.urlopen(url).read()
decodedData = rawData.decode("utf-8")
x = re.search('div class="meaning"', decodedData)
start = x.start()
end = x.end()
result = decodedData[start:end]
print(result)
应该可以了。如果这不起作用,请发布一个引发此错误的示例单词。 (顺便说一下,这段代码不会产生你想要的输出)
关于python - 如何在python中排除BMP中不存在的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51446194/