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 引數以指定要使用的格式。

廣告