Beautiful Soup - 美化打印



要显示 HTML 文档的整个解析树或特定标签的内容,可以使用 print() 函数或调用 str() 函数。

示例

from bs4 import BeautifulSoup

soup = BeautifulSoup("<h1>Hello World</h1>", "lxml")
print ("Tree:",soup)
print ("h1 tag:",str(soup.h1))

输出

Tree: <html><body><h1>Hello World</h1></body></html>
h1 tag: <h1>Hello World</h1>

str() 函数返回一个以 UTF-8 编码的字符串。

要获取格式良好的 Unicode 字符串,请使用 Beautiful Soup 的 prettify() 方法。它格式化 Beautiful Soup 解析树,使每个标签都位于自己的独立行并带有缩进。它允许您轻松地可视化 Beautiful Soup 解析树的结构。

考虑以下 HTML 字符串。

<p>The quick, <b>brown fox</b> jumps over a lazy dog.</p>

使用 prettify() 方法,我们可以更好地理解其结构:

html = '''
   <p>The quick, <b>brown fox</b> jumps over a lazy dog.</p>
'''
from bs4 import BeautifulSoup

soup = BeautifulSoup(html, "lxml")
print (soup.prettify())

输出

<html>
 <body>
  <p>
   The quick,
   <b>
    brown fox
   </b>
   jumps over a lazy dog.
  </p>
 </body>
</html>

您可以在文档中的任何 Tag 对象上调用 prettify()。

print (soup.b.prettify())

输出

<b>
 brown fox
</b>

prettify() 方法用于理解文档的结构。但是,它不应用于重新格式化文档,因为它会添加空格(以换行符的形式),并更改 HTML 文档的含义。

prettify() 方法可以选择提供 formatter 参数以指定要使用的格式。

广告

© . All rights reserved.