Beautiful Soup 简明教程
Beautiful Soup - encode() Method
Method Description
Beautiful Soup 中的 encode() 方法呈现给定的 PageElement 及其内容的字节字符串表示形式。
prettify() 方法允许你轻松直观地展示 Beautiful Soup 解析树的结构,它有 encoding 参数。encode() 方法在 prettify() 方法中的作用与编码相同。
Parameters
-
encoding − 目标编码。
-
indent_level − 渲染的每行都将
-
indented this many levels. Used internally in recursive calls while pretty-printing.
-
formatter − Formatter object,或一个指定标准制表符之一的字符串。
-
errors − 一个错误处理策略。
Example 1
默认情况下,编码参数为 utf-8。以下代码显示了羹对象经过编码后的字节字符串表示形式。
from bs4 import BeautifulSoup
soup = BeautifulSoup("Hello “World!”", 'html.parser')
print (soup.encode('utf-8'))
Example 2
制表符对象具有以下预定义值 −
formatter="minimal" − 它是默认值。将对字符串进行足够的处理以确保 Beautiful Soup 生成有效的 HTML/XML。
formatter="html" − 只要有可能,Beautiful Soup 将把 Unicode 字符转换为 HTML 实体。
formatter="html5" − 它类似于 formatter="html",但是 Beautiful Soup 将在 HTML 空标签(例如 "br")中省略结束斜杠。
formatter=None − Beautiful Soup 将不修改输出中的字符串。这是最快的选项,但可能导致 Beautiful Soup 生成无效的 HTML/XML。
在以下示例中,不同的制表符值被用作 encode() 方法的参数。
from bs4 import BeautifulSoup
french = "<p>Il a dit <<Sacré bleu!>></p>"
soup = BeautifulSoup(french, 'html.parser')
print ("minimal: ")
print(soup.p.encode(formatter="minimal"))
print ("html: ")
print(soup.p.encode(formatter="html"))
print ("None: ")
print(soup.p.encode(formatter=None))
Output
minimal:
b'<p>Il a dit <<Sacr\xc3\xa9 bleu!>></p>'
html:
b'<p>Il a dit <<Sacré bleu!>></p>'
None:
b'<p>Il a dit <<Sacr\xc3\xa9 bleu!>></p>'