这是我对stackoverflow.com的第一篇文章,我有w.r.t我Python3程序显示的PyDev换Eclipse控制台输出问题
我使用:Python的3.4 --- PyDev的换--- Eclipse的Python模块:请求,BS4,pprint
每当我运行下面的代码,
html_content = response.content
bs = BS(html_content,'html.parser')
page_html = bs.prettify(encoding='utf-8')
print(page_html)
如下面所示的整个输出被显示在单独的一行中,而不是显示在一个相当打印格式
b'<!DOCTYPE doctype html>\n<html class="no-js" lang="en-US">\n <head>\n <meta charset="utf-8"/> ...<entire output>...
我还试图与pprint()从pprint模块的方法。不过,我得到了相同的结果单独显示在一个系,即整个输出
我怎么显示在一个漂亮的打印格式的O / P?
谢谢,skambl
当您指定encoding
说法,你问它来输出编码。这给你一个bytes
对象,这是由得到打印的字符串之前领先b
识别。 b'some value'
打印到控制台意味着你打印的bytes
对象(在python 3)。
选项1
print(page_html.decode('utf-8'))
既然你问它编码为utf-8
,那是你应该decode
它。
选项2
好像你其实想一个字符串(不是bytes
对象)。所以只是做
page_html = bs.prettify() # no encoding parameter
此外,您可能需要阅读Output formatters一节有更多的事情可以与输出做。
我知道你问这个是很久以前,但希望的答案仍然是有帮助的(特别是,明知领先b'...'
是bytes
对象,你需要decode
说)!我正在寻找的东西相关的BS4和偶然发现了这一点,以为我会解释为什么你看到这个行为:)