URL 打开,解码编码错误类型错误:需要类似字节的对象,而不是'str'



我正在遵循教程和下一段代码:

import urllib.request as url
def getTextWaPo(URL):
page = url.urlopen(URL).read().decode('utf8')
soup = BeautifulSoup(page, 'lxml')
mytext = ' '.join(map(lambda p: p.text, soup.find_all('article')))
return mytext.encode('ascii', errors='replace').replace("?", " ")

返回:

TypeError: a bytes-like object is required, not 'str'

然而,在文档中,我看到编码是一个字符串方法。那么为什么我需要类似字节的对象呢?如果这不是这样做的方法,如何删除文本中的特殊字符?

我环顾四周,但我遇到的答案对我没有帮助,或者至少我不明白。

您的问题在于替换而不是编码。使用编码将字符串转换为字节格式,然后使用替换为字符串而不是字节。

我不确定如果没有示例 URL 来测试它,您会期望什么输出,但请尝试将 return 语句替换为;

return mytext.encode('ascii', errors='replace').replace(b"?", b" ")

相关内容

最新更新