我正在尝试使用urllib3和漂亮的汤来抓取一些网站。 Python 3编码/解码让我感到沮丧。这是我的代码
r = http.request('GET', 'https://www.************************.jsf')
if(r.status == 200):
page = r.data.decode('utf-8')
soup = BeautifulSoup(page)
print(soup.prettify())
#This prints - [Decode error - output not utf-8]
# [Decode error - output not utf-8]
print(soup.prettify().encode('utf-8'))
#This prints the data but with binary mark
# b'<!DOCTYPE html PUBLIC "-//W3C//D.......
#..........................................'
由于我在调用美味汤之前完成了解码r.data.decode('utf-8')
,为什么我需要再次对其进行编码,为什么它仍然显示b&#39;&#39;甚至在将其转换为字符串后标记
答案 0 :(得分:0)
b'xxx'
是二进制类型值的表示(字节序列 - 这是.encode()
的自然结果。print()
函数自动将对象转换为其表示形式它不是一个字符串。
尝试将调试infor写入文件。输出到支持某些字符集/编码的控制台时,print
函数可能会出现问题。