我正在学习教程和下一段代码:
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'
但是在文档中,我看到encoding是一个字符串方法。那么为什么我需要类似字节的对象呢?如果不是这样,如何删除文本中的特殊字符?
我环顾四周,但是遇到的答案并没有帮助我,或者至少我没有理解。
您的问题是替换而不是编码。您正在使用编码将字符串转换为字节格式,然后使用替换字符串而不是字节。
我不确定没有示例URL对其进行测试时会得到什么样的输出,但是请尝试将return语句替换为;
return mytext.encode('ascii', errors='replace').replace(b"?", b" ")
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句